Javascript передать по ссылке и реквизит в реакции - PullRequest
0 голосов
/ 08 марта 2019

Как я правильно понимаю, в Javascript у нас есть две разные передачи: по значению и по ссылке.По значению это когда мы передаем строки или числа.По ссылке, когда мы передаем объекты или массивы.

В последний раз в каком-то проекте я заметил antipattern -> кто-то назначил новое значение для this.props.arrayOfNames = newArrayOfNames;

У меня не было возможности протестировать его, но ... это как-то изменит объект родителя?По ссылке?

1 Ответ

5 голосов
/ 08 марта 2019

this.props.arrayOfNames = newArrayOfNames не антипаттерн, а ошибка. props объект является неизменным, это обеспечивается использованием Object.freeze в режиме разработки. Присвоение значения свойства arrayOfNames приведет к ошибке.

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

...