在我的項目中,我試圖擺脫所有mixin並將其替換爲HOC。目前我使用ES5卡住了。將ES5 Mixins轉換爲高階組件
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
和運行一個update
功能將通過在data
每個鍵循環和更新道具/狀態componentWillUpdate
。
在React的docs有關去除mixin,它們的mixin保存數據,而不是組件。
我的項目中有很多組件有一個data
對象,並使用這個mixin來更新他們的道具/狀態。如何製作一個可重用組件來處理這個數據對象?
另外,我怎樣才能從組件內訪問這個數據對象?組件this.data
爲空。 mixin this.data
的內部是組件內部的數據對象。爲什麼?