РЕАКТА документация содержит следующее предупреждение:Использование рефов в реакцию
рефов доступа Никогда внутри штукатурки метода любого компонента - или в то время как метод визуализации любого компонента даже работает в любом месте в стеке вызовов.
Почему? Моя проблема заключается в том, что я пишу компонент, который излагает своих детей способами, зависящими от размеров детей. То есть мне нужно измерить узлы DOM, поэтому мне нужно получить доступ к каждому ребенку, который я планировал делать с помощью refs, в рендеринге. Что в этом плохого? Конечно, мне нужно учесть тот факт, что некоторые дети могут еще не существовать в ref (в первом рендере не существует ни одного ребенка).
Кстати, мой рендер кажется сработавшим.
Якоб, я знаю об этом. BTW, ref ref контейнера не будет заполняться, когда компонентWillMount. componentWillMount вызывается перед рендером, поэтому пока еще не созданы дети. Самый первый контейнерный рендеринг в ссылках не увидит ничего. Позже дети будут созданы и будут заполнены. В следующем рендеринге я хочу их использовать. В чем проблема? – Eduardo
Возможно, мне нужно что-то прояснить. Все дети имеют уникальные ключи, а ключ для каждого ребенка - ключ. Я ожидаю, что как только refs [key] установлен, он никогда не изменится, пока ребенок существует. Я ошибаюсь в своих ожиданиях? – Eduardo
Я бы по-прежнему использовал методы жизненного цикла, f.ex 'componentWillUpdate' вместо рендеринга. Зачем? А почему бы не. Это то, что рекомендуют спецификации. Если вы вычисляете размеры «на лету» в методе рендеринга, вам лучше вычислять их внутри 'componentDidMount', а затем устанавливать состояния и повторно отображать с помощью новых вычислений. – David