React:将数组绑定到动态添加的字段

婴儿车

可以说我有一个带有状态级别数组的类

ElementsClass = React.createClass({
    getInitialState: function() {
      return {
          elements: []
      }
    },
    addElement: function() {
        var element = {
            name: ""
        };
    },
    render() {
        return (
            {this.state.elements.map(function (element, i) {
                    return <input value={element.name} />
                }
            )}
        )
}

我的想法是可以动态添加到elements数组,并出现一个新的输入字段。

如何绑定数据,以便能够更改输入字段中的值并使该值自动反映在elements数组中的正确元素中?

杰西·克纳汉(Jesse Kernaghan)

要将输入与状态数组动态同步,可以使用react-catalyst包中调用linkStatesometing 使用npm安装后,可以通过以下方式使用它:

 //need to import
import Catalyst from 'react-catalyst'; 

ElementsClass = React.createClass({
    // mixin the linkedstate component
    mixins : [Catalyst.LinkedStateMixin],       

    getInitialState: function() {
      return {
          elements: []
      }
    },
    addElement: function() {
        var element = {
            name: ""
        };

        //add to elements array
        this.state.elements.push(element);

        //let react know to rerender necessary parts
        this.setState({
            elements : this.state.elements
        });
    },
    render() {
        return (
            {this.state.elements.map(function (element, i) {
                    //use the linkState method
                    return <input valueLink={this.linkState('elements.'+i+'.name')} />
                }
            )}
        )
}

我们需要该react-catalyst软件包的原因valueLink,在您的情况下,本机React只会链接顶级状态项elements显然,这并不是特别有用,但值得庆幸的是,这是一个很容易解决的问题。

注意:对于迭代项(例如元素输入),您需要提供唯一键。如下所示(可能需要修改以更具体):

{this.state.elements.map(function (element, i) {
        //use the linkState method
        return <input valueLink={this.linkState('elements.'+i+'.name')} key={'elinput' + i} />
    }
)}

这不会对您的应用产生任何外在影响,主要是为了帮助内部响应目标元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将DataSet字段动态绑定到表单标题

来自分类Dev

将jQuery处理程序绑定到动态创建的字段

来自分类Dev

将jquery datepicker绑定到动态行文本字段

来自分类Dev

将独立事件绑定到动态添加的元素

来自分类Dev

将点击事件绑定到动态添加的内容

来自分类Dev

如何动态地将数组绑定到JComboBox?

来自分类Dev

将输入字段绑定到Angular.js中的数组

来自分类Dev

动态将输入字段添加到数组中

来自分类Dev

如何使用React将焦点放在动态添加的字段上

来自分类Dev

如何将动态创建的表单字段绑定到Angular 2中的对象?

来自分类Dev

Laravel Nova:将字段动态绑定到模型上的 JSON 属性

来自分类Dev

如何将动态输入值绑定到 Vue.js 中的 v-for 输入字段

来自分类Dev

使用双向绑定从角度视图向控制器动态添加/创建对象到数组

来自分类Dev

如何将Jquery滚动事件绑定到动态添加的元素?

来自分类Dev

如何将控制器绑定到动态添加的HTML?

来自分类Dev

MVC-将动态添加的控件绑定到模型中的List <T>

来自分类Dev

无法将datepicker绑定到jquery中动态添加的文本框

来自分类Dev

ExtJS 4.2将Tree Panel / TreeStore绑定到客户端动态JS对象数组

来自分类Dev

如何将动态字节数组绑定到 WPF 中的按钮背景

来自分类Dev

动态将按钮绑定到列表

来自分类Dev

动态将点击事件绑定到列表

来自分类Dev

将动态道具绑定到vue组件

来自分类Dev

For循环-将动态键绑定到#id

来自分类Dev

将事件绑定到动态创建的元素

来自分类Dev

将函数绑定到动态创建的元素

来自分类Dev

将动态片段绑定到视图

来自分类Dev

动态添加字段到find()mongodb

来自分类Dev

将日期绑定到输入字段

来自分类Dev

如何使用http请求中的数组将动态输入字段添加到角度形式

Related 相关文章

  1. 1

    将DataSet字段动态绑定到表单标题

  2. 2

    将jQuery处理程序绑定到动态创建的字段

  3. 3

    将jquery datepicker绑定到动态行文本字段

  4. 4

    将独立事件绑定到动态添加的元素

  5. 5

    将点击事件绑定到动态添加的内容

  6. 6

    如何动态地将数组绑定到JComboBox?

  7. 7

    将输入字段绑定到Angular.js中的数组

  8. 8

    动态将输入字段添加到数组中

  9. 9

    如何使用React将焦点放在动态添加的字段上

  10. 10

    如何将动态创建的表单字段绑定到Angular 2中的对象?

  11. 11

    Laravel Nova:将字段动态绑定到模型上的 JSON 属性

  12. 12

    如何将动态输入值绑定到 Vue.js 中的 v-for 输入字段

  13. 13

    使用双向绑定从角度视图向控制器动态添加/创建对象到数组

  14. 14

    如何将Jquery滚动事件绑定到动态添加的元素?

  15. 15

    如何将控制器绑定到动态添加的HTML?

  16. 16

    MVC-将动态添加的控件绑定到模型中的List <T>

  17. 17

    无法将datepicker绑定到jquery中动态添加的文本框

  18. 18

    ExtJS 4.2将Tree Panel / TreeStore绑定到客户端动态JS对象数组

  19. 19

    如何将动态字节数组绑定到 WPF 中的按钮背景

  20. 20

    动态将按钮绑定到列表

  21. 21

    动态将点击事件绑定到列表

  22. 22

    将动态道具绑定到vue组件

  23. 23

    For循环-将动态键绑定到#id

  24. 24

    将事件绑定到动态创建的元素

  25. 25

    将函数绑定到动态创建的元素

  26. 26

    将动态片段绑定到视图

  27. 27

    动态添加字段到find()mongodb

  28. 28

    将日期绑定到输入字段

  29. 29

    如何使用http请求中的数组将动态输入字段添加到角度形式

热门标签

归档