Как обновить состояние, когда реквизиты установлены с помощью mapStateToProps? - PullRequest
0 голосов
/ 01 ноября 2019

Я установил defaultValue текстового поля, используя реквизиты, установленные Redux mapStateToProps.

Когда текстовое поле изменяется (определяется с помощью onChange={...}), я вызываю setState, чтобы захватить ввод пользователя.

В настоящий момент проблема в том, что если текстовое поле не изменяется, setState никогда не вызывается. Если пользователь отправляет форму, defaultValue не может ее указать, поэтому отправляется пустая строка.

Многие рекомендуют использовать componentWillReceiveProps, но этот метод устарел.

1 Ответ

0 голосов
/ 01 ноября 2019

Введите значение для состояния компонента либо с помощью getDerivedStateFromProps для компонента класса, либо с помощью вызова setState из обратного вызова useEffect для функционального компонента:

const [state, setState] = useState(props.propFromRedux)
useEffect(() => setState(props.propFromRedux), [props.propFromRedux])
...