2016-06-26 2 views
9

Насколько я могу судить, если я передаю родительское состояние компонента до ребенка, тогда этот ребенок получит состояние live родителя.В реакциях, реквизит передается по значению или проходит по ссылке?

Таким образом, изменение, внесенное в состояние родителя, также доступно также ребенку через опору, в которой он появился.

Это правильно?

ответ

0

Когда состояние компонента изменяется, компонент повторно преобразуется с помощью React. При этом его дочерние компоненты также повторно отображаются, что также приводит к изменениям в них.

7

Это, по сути, тот же механизм, что и в другом месте на языке, как и следовало ожидать. Примитивы передаются по значению, а переменные, которые не являются примитивами, передаются по ссылке.

Реагент заботится об обновлении реквизита, так что дети всегда имеют самое последнее значение опоры.

This is the lifecycle method, который вызывается при получении новых значений для реквизита.

Однако убедитесь, что вы уважаете внедренную инфраструктуру и открытый API, который дает вам React.

0

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

Взгляните на это - https://facebook.github.io/react/docs/multiple-components.html. Это поможет вам разобраться, как работает эта концепция. Надеюсь это поможет!

+0

В дочернем компоненте я хочу определить, что-то изменилось - значение поля. Поэтому я передаю эту информацию вниз через реквизиты от родителя к ребенку. НО ребенок УЖЕ имеет измененное значение поля, потому что родительское состояние падает в реквизитах. –

+0

@DukeDougal Вы можете обратиться к моему ответу за метод жизненного цикла, который вы можете использовать для перехвата входящих изменений. Вы можете проверить свои изменения там. Функция вызывается с новыми значениями реквизита, и вы все равно будете иметь доступ к старым значениям, используя ссылку 'this.props', которая укажет на ваш компонент. –

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