我正在尝试调整a SO answer中的代码,函数和变量写如下:
const getIntervals = n=> availability=> {
}
let availability = [
]
那些通常可以在反应类中使用(见下文)还是需要重写?
class Calendar extends React.Component {}
询问的原因是我使用了React实现for Rails并且确实收到包含该函数和变量命名模式的错误。
答案 0 :(得分:4)
纯函数,不修改传递的值,总是可以在任何地方使用。
直接在React类中使用它们也很好,但是你在应用程序和类中使用很多的常用函数,如字符串修改,数组排序算法,应该在一个单独的模块中,如
// my-helpers.js
export const countKeysInObject = (data) => {
if (typeof data !== "object" || Array.isArray(data)) return 0;
Object.keys(data).length;
}
其他一些文件..
import { countKeysInObject } form 'my-helpers'
// And you can use it everywhere..
答案 1 :(得分:2)
如果您使用class
并扩展Component
,则可以使用简单方法处理大多数事情:
class Calendar extends React.Component {
constructor(props) {
this.date = props.date;
}
render() {
return <span>{this.date.toString()}</span>;
}
}
Calendar.propTypes = {
date: React.PropTypes.date.isRequired
};
如果使用对象文字,则不能使用propTypes
的方法或任何可能是初始字段的方法。声明类(propTypes
)或构造函数(初始state
)之后需要附加的那些。