Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Reactjs中更新状态?_Javascript_Reactjs_Mobx - Fatal编程技术网

Javascript 在Reactjs中更新状态?

Javascript 在Reactjs中更新状态?,javascript,reactjs,mobx,Javascript,Reactjs,Mobx,我正在尝试更新ReactJS中的状态。为此,我在Reactjs类中有一个输入字段。该字段将自动填充来自父类的数据。该字段如下所示: <input onChange={e => this.props.store.addLego(e)} name="piece" value={this.props.row.original.piece} /> addLego = a

我正在尝试更新ReactJS中的状态。为此,我在Reactjs类中有一个输入字段。该字段将自动填充来自父类的数据。该字段如下所示:

           <input
            onChange={e => this.props.store.addLego(e)}
            name="piece"
            value={this.props.row.original.piece}
          />
 addLego = action("addLego", e => {
this[e.target.name] = e.target.value;
});
但是,我实际上无法编辑输入字段!当我打字时,字段中没有任何变化!谢谢你的帮助

按此操作将解决您的问题。它也是处理单个或多个输入的好读物

基本上,在构造函数中需要一个状态

this.state = {value: ''};
事件处理程序设置每次更改的值

handleChange(event) {
    this.setState({value: event.target.value});
  }
以及输入的设置

<input type="text" value={this.state.value} onChange={this.handleChange} />

如果将
属性设置为
字段,则该字段将成为受控输入。这意味着传递给
value
的任何内容都会在屏幕上呈现。在您的情况下,如果不更新
this.props.row.original.piece
字段将永远不会获得新值。我建议您阅读React的文档


它基本上是建议将新值保留在某个位置(例如在组件的状态中),并将其作为值设置回字段。

您将该值设置为
this.props.row.original.piece
,更改输入值的唯一方法是更新
this.props.row.original.piece的值。
this.props.row.original.piece的值需要根据
onChange
函数进行更改。只要该值不改变,输入中的值就不会改变。实际上,您不是在更新组件的状态,而是在更新一些存储?为什么不:this.setState({inputValue:e.target.value})}name=“piece”value={this.state.inputValue}/>您是否检查过开发人员控制台中的任何Javascript或React异常?不要忘记在构造函数中绑定this.handleChange.bind(this)。