React - handleChange由一个函数的多个输入

时间:2017-03-30 12:25:43

标签: javascript arrays reactjs

我在页面上有多个输入,我只想通过一个函数来处理更改,我已经使用此代码执行此操作:

    handleInputChange(event) {

        let modules = this.props.templateModules.slice()
        let inputs

        for(let i in modules) {
            inputs = modules[i].fields
        }

        for(let i in inputs){
            if(inputs[i].name === event.target.name){
                 inputs[i].value = event.target.value;
                 this.setState ({inputs});
                 break;
            }
        }
    }

来自控制台的那些模块的结构(在按钮点击时动态添加)是:

enter image description here

以及包含每个模块的输入字段:

enter image description here

正如您所看到的,遗憾的是这些名称并不是唯一的,因此如果页面上有多个模块,我的代码无法正常工作。我只想映射当前焦点模块的字段(猜测可能是一个选项),但不知道该怎么做。

有什么想法吗? :)

1 个答案:

答案 0 :(得分:0)

好的,如果有人和我有同样的问题,我想我找到了解决方案。

我没有处理我最初在容器组件中那些输入的更改,而是将模块渲染分离成一个单独的类,所以结构现在看起来像这样......

 Container Component

      -> Presentational Component

           -> Module Component (class containing the function handleChange)

我不确定这是否是正确的方法,但这是我能想到让它发挥作用的唯一方式,而且工作正常! :)