私のプロジェクトでは、すべてのミックスインを取り除き、それらをHOCに置き換えようとしています。私は現時点でES5を使用して立ち往生しています。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
とdata
上の各キーをループや小道具/状態を更新するupdate
機能を実行componentWillUpdate
を有しています。
ミックスインを取り除くことについてのリアクションのdocsでは、ミックスインはコンポーネントではなくデータを保持します。
私のプロジェクトにはdata
オブジェクトを持つ多くのコンポーネントがあり、このmixinを使用してその小道具/状態を更新します。このデータオブジェクトを処理するために再利用可能なコンポーネントを作成するにはどうすればよいですか?
また、コンポーネント内からこのデータオブジェクトにアクセスするにはどうすればよいですか?コンポーネントthis.data
にはnullがあります。ミックスインの中でthis.data
は、コンポーネント内部のデータオブジェクトです。なぜですか?