В своем проекте я пытаюсь избавиться от всех примесей и заменить их 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
);
}
}
Внутри миксина есть componentWillMount
и componentWillUpdate
, которые запускают функцию update
, которая будет перебирать каждую клавишу на data
и обновлять свойства/состояние.
В документах React об удалении миксинов , их миксины содержат данные, а не компонент.
В моем проекте есть МНОГИЕ компоненты, которые имеют объект data
и используют этот миксин для обновления своих реквизитов/состояния. Как создать повторно используемый компонент для обработки этого объекта данных?
Кроме того, как мне получить доступ к этому объекту данных из компонента? В компоненте this.data
значение null. Внутри миксина this.data
находится объект данных внутри компонента. Почему?