【发布时间】:2017-07-02 00:49:53
【问题描述】:
我正在将 React 集成到现有应用程序中。这个应用程序是数据密集型的,数据结构非常复杂,这让我有点难以适应 React 模式,尤其是无状态和组合。
给定这样的数据:
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,子级检索它自己的数据。
一个意味着动态检索组件道具,另一个意味着拥有一个“上帝”父母,它拥有其孩子的所有必要数据,哪一个是更好的方法?
我的另一个问题是,将 Choice 作为其 props 的组件是否应根据其 Choice 的类型以不同的方式显示,是制作这样的包装组件的更好方法吗? :
class Choice extends Component {
constructor(props){
super(props);
}
render(){
switch(props.choice.type){
case "typeA":
return (<TypeAComponent />);
case "typeB":
return (<TypeBComponent />);
default:
return (..);
}
}
}
或者有没有更清洁的选择(我对switch case有点过敏)...
【问题讨论】:
标签: javascript oop reactjs