在我的项目中,我试图摆脱所有的 mixin 并用 HOC 替换它们。我现在被困在使用 ES5 上。
export default React.createClass({
mixins: [SomeAsyncMixin],
data: {
item1: {
params: ({params, query}) => {
params: ({params, query}) => {
if (!query.p) {
return null;
}
const status = someTernaryResult
return {
groups: query.groups,
status,
subject: params.subject,
};
},
promise: query => query && query.subject && api(makeUrl(`/some/endpoint`, query))
},
item2: {
params: ({params, query}) => {
//same as before
},
promise: ({subject, query}) =>
// same as before
}
render() {
// some stuff
return(
// some jsx
);
}
}
在 mixin 内部,它有 acomponentWillMount
和 acomponentWillUpdate
运行一个update
函数,该函数将遍历每个键data
并更新 props/state。
在 React 的关于删除 mixins 的文档中,他们的 mixins 保存的是数据,而不是组件。
我的项目中有很多组件都有一个data
对象并使用这个 mixin 来更新它们的 props/state。如何制作一个可重用的组件来处理这个数据对象?
此外,我什至如何从组件内访问此数据对象?在组件this.data
中为空。mixinthis.data
内部是组件内部的数据对象。为什么?