Как я могу запрограммировать кнопку, чтобы изменить цвет объекта в Vizard?

Вы можете использовать React.cloneElement, лучше знать, как это работает, прежде чем вы начнете использовать его в своем приложении. Это введено в React v0.13, читайте дальше для получения дополнительной информации, поэтому что-то вместе с этой работой для вас:

{React.cloneElement(this.props.children, {...this.props})}

Поэтому приведите строки из документации React для вас, чтобы понять, как все это работает и как вы может использовать их:

В React v0.13 RC2 мы представим новый API, похожий на React.addons.cloneWithProps, с этой сигнатурой:

blockquote>
React.cloneElement(element, props, ...children);

В отличие от cloneWithProps, эта новая функция не имеет никакого волшебного встроенного поведения для слияния стиля и className по той же причине, что у нас нет этой функции от transferPropsTo. Никто не уверен, что именно представляет собой полный список волшебных вещей, что затрудняет разузнание кода и трудно повторное использование, когда стиль имеет другую подпись (например, в предстоящем React Native).

React. cloneElement почти эквивалентен:

blockquote>
{children}

Однако, в отличие от JSX и cloneWithProps, он также сохраняет ссылки. Это означает, что если вы получите ребенка с рефлексией на нем, вы случайно не украдете его у своего предка. Вы получите тот же ref, что и ваш новый элемент.

Один общий шаблон - это сопоставление с вашими детьми и добавление новой опоры. Было много сообщений о том, что cloneWithProps потерял ref, что затрудняет рассуждение о вашем коде. Теперь, следуя той же схеме с cloneElement, будет работать так, как ожидалось. Например:

blockquote>
var newChildren = React.Children.map(this.props.children, function(child) {
  return React.cloneElement(child, { foo: true })
});

Примечание: React.cloneElement (child, {ref: 'newRef'}) Отменяет ref, поэтому для двух родителей иметь ссылку на одного и того же ребенка, если вы не используете callback-refs.

Это была важная функция, чтобы попасть в React 0.13, поскольку реквизиты теперь неизменяемы. Путь обновления часто клонирует элемент, но при этом вы можете потерять ref. Поэтому нам нужен был более удобный путь обновления. Когда мы обновляли callites в Facebook, мы поняли, что нам нужен этот метод. Мы получили те же отзывы от сообщества. Поэтому мы решили сделать еще один RC перед окончательным выпуском, чтобы убедиться, что мы это получим.

Мы планируем в конечном итоге отказаться от React.addons.cloneWithProps. Мы еще не делаем этого, но это хорошая возможность начать думать о ваших собственных потребностях и вместо этого использовать React.cloneElement. Мы обязательно отправим выпуск с уведомлениями об отказе, прежде чем мы удалим его, поэтому немедленное действие не потребуется.

blockquote>

больше здесь ...

0
задан Logan Burrows 13 July 2018 в 23:34
поделиться