Reactを既存のアプリケーションに統合しています。このアプリはデータ集約型で、データ構造はかなり複雑なので、Reactパターン、特にステートレスとコンポジションを適応するのは少し難しいです。複雑なデータ構造を持つReactJSのベストプラクティス
component: {
options: [optionA, optionB, optionC]
}
options: {
optionA : {
name: 'FOO',
choices: [choiceA, choiceB, choiceC]
},
optionB : {
name: 'BAR',
choices: [choiceD, choiceE]
},
...
}
choices: {
choiceA : {
type: 'typeA',
choices: [choiceA, choiceB, choiceC],
name: 'abb'
},
choiceB : {
type: 'typeB',
name: 'abc'
},
...
}
このデータはIDによってリンクされているので、私は二つの可能性があります:
を親コンポーネントの子どもたちのデータを取得し、それを渡し、このようなデータが与えられた
子供に。
IDを渡すと、子はそれ自身のデータを取得します。
一つは、動的コンポーネントの小道具を取得意味し、他のは、それが1より良いアプローチである子供、だために必要なすべてのデータを持っている「神」親を持つ意味しますか?
私の他の質問は、Choiceをその小道具の種類によって異なるように表示するコンポーネントが、このようなラッパーコンポーネントを作成するためのより良いアプローチですか? :
class Choice extends Component {
constructor(props){
super(props);
}
render(){
switch(props.choice.type){
case "typeA":
return (<TypeAComponent />);
case "typeB":
return (<TypeBComponent />);
default:
return (..);
}
}
}
またはクリーナーの代替は(私はケースを切り替えるにアレルギーのビットです)があり...
私が考えていたことを確認していただきありがとうございます! Reduxへの移行について、深くリンクされたデータ構造に適応できると思いますか? –
reduxの作成者[Dan Abramov](http://stackoverflow.com/users/458193/dan-abramov)によると、浅い状態のツリーではうまく動作します。詳細については、彼の[egghead course](https://egghead.io/lessons/javascript-redux-normalizing-the-state-shape)を十分にお勧めすることはできません。すべてのことを学ぶには素晴らしいリソースです –