2016-07-05 40 views
0

我想在反应中构建一个复杂的表格。它是输入矩阵,当输入值发生变化时,我需要进行操作。我想为所有输入的“onchange”调用相同的函数,但我需要知道哪个输入调用了该函数。什么是最好的方式来做到这一点?反应中的输入矩阵

将我所有的输入值存储在我存储在组件状态中的javascript数组中是一个好主意。当输入值改变时,我可以在我的函数中操作这个数组。我不确定这是一个好的做法。

有什么建议吗?我是React的新手,我发现的所有例子都以简单的形式出现。谢谢 !

回答

0

你可以做这样的事情:

class MyComponent extends React.Component 
    _createOnChangeFunction = (inputIndex) => { 
    return() => { 
     // The magic of closures helps you out here 
     console.log(`INPUT ${inputIndex} CHANGED`); 
    } 
    } 

    render() { 
    myElements = []; 
    for(i = 0; i < NUMBER_OF_INPUTS; i++) { 
     myElements.push(<input type='checkbox' value={i} onChange={this._createOnChangeFunction(i)} />); 
    } 

    return (
     <div> 
     {myElements} 
     </div> 
    } 
    } 

} 

(请注意,你必须提供NUMBER_OF_INPUTS和你真正想要的功能做什么)

有关的一个很好的例子我用过的封闭物,看看这个帖子:How do JavaScript closures work?