установить обратный вызов по умолчанию для реакции на функцию setState () - PullRequest
0 голосов
/ 26 ноября 2018

Я хочу посмотреть, могу ли я вызывать функцию для каждого обновления состояния компонента.Так как реагировать setState () принимает обратный вызов в качестве параметра секунд, есть ли способ вызывать функцию при каждом изменении состояния?

Я пытался что-то, но не получилось.Вы можете проверить здесь .

Пожалуйста, исправьте меня, если что-то не так в том, как я связываюсь.

Ответы [ 3 ]

0 голосов
/ 26 ноября 2018

Вместо переопределения обратного вызова setState, выполняемого при каждом изменении состояния, вы можете просто использовать метод жизненного цикла componentDidUpdate в реакции

componentDidUpdate(prevProps, prevState) {
   //compare this state and prevState and take action here
}

Или вы можете написать функцию, которая выполняетфункция и setState

_setState = (updatedObj) =>{
     this.setState(updatedObj, this.callback)
}
0 голосов
/ 26 ноября 2018

Если я правильно понимаю, вы можете использовать componentDidUpdate, чтобы проверить, было ли обновлено состояние, и вызвать функцию внутри.Обратите внимание, что componentWillReceiveProps устарела.

0 голосов
/ 26 ноября 2018

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

const onStateChange = (...) => {
    //DO SOMETHING HERE
    this.setState(...);
};

Затем, когда вы захотите изменить состояние, вызывайте эту функцию с добавленным поведением.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...