2016-04-17 4 views
1

Я хотел бы знать, что лучше всего подходит для связи между родительскими/дочерними компонентами. Я прочитал это blogpost о состояниях связи и компонентов, но не нашел правильного ответа на мою проблему.Модель данных в дочернем компоненте

Рассматриваются следующие компоненты. Мой родительский компонент - это List, который отображает несколько Заданий (дочерний компонент) из объектов в родительском компоненте.

Так что мои вопросы:

  1. Это лучшая практика, чтобы передать объект каждому компоненту задач?
  2. Когда значение изменилось в компоненте «Задача», как родительский компонент знает об этом? Потому что родитель должен знать об информации всех детей.

Итак, это правильный шаблон для использования?

В моем родительском компоненте у меня есть это в функции визуализации:

<Task key={index} taskdata={taskobj} /> 

My Task ребенок компонент выглядит следующим образом:

render() { 
    return (
     <input type="text" name="wunsch" defaultValue={this.props.task.title}/> 
); 
} 

Таким образом, если значение поля ввода изменится, делает taskobj в родительском компоненте также изменяется? В этом примере нет. Но какова была бы правильная картина здесь?

+0

Можете ли вы привести пример кода для своей проблемы? – iofjuupasli

ответ

1

В принципе, если вы хотите передавать информацию от родителя к детям, вы используете props, когда вы хотите передать информацию от ребенка к родительскому, вы передаете функцию ребенку как prop, а затем назовите его, когда вам нужно обновить родителя ,

Вы можете прочитать в official docs

Также вы посмотрите Reflux может. Простой библиотеки для однонаправленной архитектуры потока данных вдохновленной ReactJS Flux

+0

Есть ли способ, который информация в родительском компоненте будет автоматически обновляться при изменении дочерней информации? Как «государственный» механизм? – JGM

+0

Ключевой концепцией React является обеспечение архитектуры однопоточного потока данных. Вы можете использовать некоторые библиотеки для создания двухсторонних привязок. Я бы рекомендовал взглянуть на https://github.com/reflux/refluxjs. Вы можете создать действие и подписать столько компонентов для этого действия, и все они будут обновлены при вызове этого действия. –

1

В React, потоки данных один путь

Я не был в курсе этого React концепции. Итак, прочитав этот документ link в ReactJS Doc, я решил использовать метод onChange/setState(), поскольку ReactLink уже устарел.

Поэтому, когда изменение в модели происходит в дочернем компоненте, я вызываю метод в родительском компоненте для обновления (setState) моих данных.

Смежные вопросы