Я интегрирую 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'
},
...
}
Поскольку эти данные связаны идентификаторами У меня есть две возможности:
Retrieve детей данных в родительском компоненте и передать его для детей.
Передайте идентификатор, и дети извлекают его собственные данные.
Один предполагает динамическое извлечение компонентов реквизита, а другие предполагают, имеющий «бог» родитель, который имеет все необходимые данные для его детей, которых один является лучшим подходом?
Мой другой вопрос в том, должен ли компонент, который выбирает выбор в качестве реквизита, по-разному в зависимости от типа его выбора, является лучшим подходом к созданию такого компонента-обертки? :
class Choice extends Component {
constructor(props){
super(props);
}
render(){
switch(props.choice.type){
case "typeA":
return (<TypeAComponent />);
case "typeB":
return (<TypeBComponent />);
default:
return (..);
}
}
}
Или есть альтернатива уборщик (я немного аллергический для переключения случаев) ...
Спасибо, что подтверждает то, о чем я думал! Что касается перехода на Redux, вы думаете, что он адаптируется с глубоко связанными структурами данных? –
По словам создателя редукса, [Дэн Абрамов] (http://stackoverflow.com/users/458193/dan-abramov), он работает лучше с неглубокими деревьями. Для получения дополнительной информации я не могу рекомендовать его [gamehead course] (https://egghead.io/lessons/javascript-redux-normalizing-the-state-shape) достаточно, это отличный ресурс для изучения всего этого –