Я использую последнюю версию redux-form v6.5.0. Мне интересно, какое наилучшее решение сделать для переключения всех компонентов, используя библиотеку.Редукс-формы, есть ли хороший способ сделать список флажков с переключением всех функций?
В итоге я добавил различные поля в свою форму и сыграл регенерацию создателей форм действия и отреагировал жизненные циклы, но я не уверен, что это лучшее решение.
Есть ли у вас какие-либо примеры?
Что я сделал до сих пор испытывает в визуализации структуры, как это:
...
<Field
name='toggleAll'
component={Ckbox}
onChange={this.toggleAllProfile} />
<div>
{
SUB_FIELDS.map((field, i) => (
<Field key={i} name={field} component={Ckbox} />
))
}
</div>
подполя представляет собой массив имен, что-то вроде этого:
const SUB_FIELDS = ['field1', field2, field3, ...];
тогда я componentWillReceiveProps, где я проверяю, проверяются ли подполя или нет переключатель toggleAll соответственно.
componentWillReceiveProps(nextProps) {
const {
profiles,
} = nextProps;
const allFieldsChecked = SUB_FIELDS.filter(
el => nextProps[el]
).length === SUB_FIELDS.length;
if (
allFieldsChecked &&
toggleAll
) {
return;
} else if (
allFieldsChecked &&
!toggleAll
) {
this.props.change('toggleAll', true);
} else if (
!allFieldsChecked &&
profiles
) {
this.props.change('toggleAll', false);
}
}
и способ для переключения их всех на toggleAll OnChange
toggleAllProfile = (e) => {
SUB_FIELDS.forEach(field => {
this.props.change(field, e.target.checked);
});
};
Это работает хорошо, но эти поля не являются единственным в моей форме компонент, и он может получить действительно грязный добавления больше полей с разными потребностями.
Я пробовал использовать компонент Fields
, но тогда это выглядело как слишком много визуализации.
Я думал сделать их в отдельном компоненте, но тогда мне нужно будет обернуть этот компонент в другой форме, так что у меня получится 2 redux-form
s я ошибаюсь?
Спасибо, я попробую что-нибудь, я был уверен, что мне нужно украсить дочерний компонент, но я мог ошибаться (с надеждой)! –
Если это поможет вам просмотреть эти http://sslotsky.react-violet-forms.surge.sh/ В частности, третий пример демонстрирует использование компонента ' ' для чтения из нескольких входов флажков. Он также отображает те флажки, которые, как я сказал, не делать, но в моем случае это сработало хорошо. –
Samo
Я закончил тем, что добывал свои поля во внешнем компоненте, как вы предлагали, и он работал гладко, я не знаю, почему он не вернулся туда. На данный момент я использовал разные ' ' вместо использования' ', но только потому, что я уже потратил на это слишком много времени. Если я посмотрю, я вернусь к вам об этом. Спасибо, сейчас! –