javascript-ReactJS更新数组

我目前正在开始学习ReactJS,在更新数组时遇到了一些麻烦.

目前,我有一个可以正常工作的可搜索联系人列表.但是,使用列表下方的输入框,我试图使用update()函数将其他项添加到列表中.

到目前为止,我所获得的关于更新功能的示例如下.理想情况下,更新的内容有时会来自按钮左侧的输入框,但目前我只是试图将静态项目作为测试.

  updateContact: function(e){
    e.preventDefault();
    var newItems = React.addons.update(this.state.initialItems, {$push: ["New Item"]})
    return;
  },

任何帮助或指导将不胜感激,下面提供完整的JSFiddle和整个代码.

JS Fiddle

解决方法:

您没有呼叫setState,因此该组件永远不会重新渲染:

updateContact: function(e){
  e.preventDefault():
  var newItems = React.addons.update(this.state.initialItems, {$push: ["New Item"]});

  this.setState({
    initialItems: newItems,
    items: newItems
  }); // update state
},

请注意,更新this.state.items和this.state.initialItems.我假设您正在为过滤列表使用项目,并为列表中的所有项目使用initialItems.

当然,您必须用文本字段的实际值替换“新项”.

我还将删除componentWillMount并在getInitialState中将initialItems和items设置为相同的值.

同样,如果您只是将处理程序直接绑定到按钮并删除< form&gt ;,则不必处理防止事件的发生.似乎是一种回旋的方式来触发回调. 清理示例:https://jsfiddle.net/f554xrh0/

上一篇:javascript-autoGenerateWrapperClass为null react-native


下一篇:javascript-使用TestUtils.Simulate麻烦在输入元素上创建更改事件