Существует множество примеров непосредственного изменения контекста, например:

export class UserProvider extends React.Component {
  updateUsername = newUsername => {
    this.setState({ username: newUsername });
  };
  state = {
    username: "user",
    updateUsername: this.updateUsername
  };
}

Затем в Потребителе:

<input
  id="username"
  type="text"
  onChange={event => {
    updateUsername(event.target.value);
  }}
/>

Но мой обработчик onChange является функцией, и в этом обработчике OnChange я хочу обновить контекстную переменную. Используя этот пример, как бы я вызвал updateUsername из обработчика OnChange или даже из любой функции, такой как componentDidMoount и т. Д.

Я искал, но пока не смог найти ничего, что могло бы дать представление о том, как этого добиться.

0
djacks 17 Авг 2019 в 19:44

2 ответа

Лучший ответ

Используя Context в React, вы обычно хотите иметь редукторы при обновлении состояния, редукторы позволяют вам отправлять действия, которые изменяют состояние многократно. Не обновляйте состояние напрямую, оно считается анти-паттерном. Я хотел добавить этот комментарий, однако моя репутация пока не позволяет мне этого делать, извините, если это не решит вашу проблему.

0
Excell 17 Авг 2019 в 16:59

Я наконец смог решить это сам. Закрыто.

0
djacks 17 Авг 2019 в 22:07