Реагировать на функционал setState - PullRequest
0 голосов
/ 05 мая 2018

Привет, ребята, я пытаюсь сделать функционал setState в реакции, но я не могу достичь этого прямо сейчас, у меня есть помощник, который должен установить состояние this.state.siocId

handleChange(e) {
    const {value} = e.target;
    this.setState(state => ({
        siocId: {...state.siocId, siocId: value}
    }));
}

но это настройка this.state.siocId.siocId = value, можно мне сделать, чтобы получить this.state.siocId = value? я пробовал эту строку безуспешно siocId: {...state, siocId: value}

Ответы [ 3 ]

0 голосов
/ 05 мая 2018

Вы слишком усложняете это -

handleChange(e) {
    const {value} = e.target;
    this.setState({
        siocId: value
    });
}
0 голосов
/ 05 мая 2018

Если вы хотите установить функционально, используйте этот шаблон

handleChange(e) {
   const {value} = e.target;
   this.setState(function(prevState, props){
      return {siocId: value}
   });
}

Также смотрите эти статьи functions-setstate и Функция в setstae для получения дополнительной информации

Однако вы должны использовать функциональные установки, когда значение состояния зависит от предыдущего состояния. Это используется, потому что вызовы установки не выполняются немедленно

Используйте приведенный ниже шаблон, если ваше состояние не зависит от предыдущего состояния

handleChange(e) {
    const {value} = e.target;
    this.setState({
        siocId: value
    });
}
0 голосов
/ 05 мая 2018

Вам не нужно использовать functional setState для достижения того, что вы хотите, вы просто пишете

handleChange(e) {
    const {value} = e.target;
    this.setState({
        siocId: value
    });
}

и это даст вам this.state.siocId = value

...