#reactjs #redux
#reactjs #сокращение
Вопрос:
У меня есть форма ввода и кнопка «Отправить» в двух отдельных компонентах A и B. Как бы я передал входное значение из компонента A в хранилище Redux при нажатии кнопки отправки в компоненте B?
Мои мысли: — У меня была бы функция getFormInput в компоненте A, которая передавала бы входные данные в хранилище (через отправку, которая была сопоставлена с реквизитами компонента A). В чем я не уверен, так это в том, как вызвать getFormInput из другого компонента.
Комментарии:
1. разве у них нет родительского компонента? 🙂
2. Да, это родственные компоненты. Не могли бы вы поделиться своими соображениями? Я немного новичок в react / redux, поэтому мне может понадобиться дополнительное продвижение, чтобы понять, к чему вы клоните 🙂
3. пожалуйста, проверьте:
lifting state up
Ответ №1:
Мои мысли:
Поскольку вы говорите о redux store, я предлагаю вам обновлять redux store при каждом изменении текста. Тем не менее, если вы ввели ‘a’ в текстовое поле, отправьте действие и обновите хранилище redux. Таким образом, у вас будут согласованные данные по всему.
И когда вы нажимаете на свою кнопку, просто вызывайте метод (может быть, другое действие), и там вы можете использовать getState().textBoxValuewhatever напрямую для доступа к тому, что вы ввели в свое текстовое поле. (это было бы возможно, поскольку вы обновляете свое хранилище redux при каждом textchange)
Комментарии:
1. Это, безусловно, упростило бы ситуацию. Решение, которое обновляет хранилище только один раз при нажатии кнопки отправки, было бы идеальным, но это сработало бы, так что спасибо.
2. Я выбрал это, потому что вам не нужно отправлять какие-либо данные в методах onclick. Вы можете просто полностью использовать хранилище redux и отправлять туда все, что хотите, методом click. Если нет, вы можете продолжить с отменой параметра stateup, как предложено в комментариях.