如何从onChange处理函数中更新React上下文

时间:2019-08-17 16:44:29

标签: reactjs api

有很多直接更改上下文的示例-例如:

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处理程序中,我想更新上下文变量。 使用此示例,我将如何从OnChange Handler或实际上从诸如componentDidMoount等任何函数

中调用updateUsername

我进行了搜索,但到目前为止,仍未找到任何可能提示如何完成此操作的信息。

2 个答案:

答案 0 :(得分:0)

在React中使用上下文,您通常希望在更新状态时使用化简器,化简器允许您分派重复改变状态的动作。不要直接更新状态,它被视为反模式。 我想在此添加评论,但是我的名声不允许我这样做,请问这不能解决您的问题。

答案 1 :(得分:0)

我终于能够自己解决这个问题。关闭。