2017-08-10 60 views
0

有一种方法可以在setState中传递更新程序的名称?React - setState传递数据到更新程序名称

enter image description here

我想我不希望创建为收到

每个data.value了一项功能,该代码更新状态:

methodSelected = (event, data) => { 
    data.checked 
     ? this.setState(() => { 
       return { data.value: true }; 
      }) 
     : this.setState(() => { 
       return { data.value: false }; 
      }); 
}; 

可能是这样的:

methodSelected = (event, data) => { 
    data.checked 
     ? this.setState(() => { 
       return { email: true };  <<<<<< email it's data.value 
      }) 
     : this.setState(() => { 
       return { email: false }; <<<<<< email it's data.value 
      }); 
}; 

它可能与setState或'另一个功能与我的反应,我可以做到这一点?

+1

见https://developer.mozilla.org/en/docs/ Web/JavaScript/Reference/Operators/Object_initializer和ctrl + f用于“计算属性” – Misiur

+0

'return {data.value:false};'实际上是编译错误。你能更好地解释你想要什么吗? –

+0

@Misiur发布它就像一个答案评分和标记解决。谢谢 – Gil

回答

3

如果我理解正确的,你想传递的关键对象作为变量:

methodSelected = (event, data) => { 
    data.checked 
     ? this.setState({[data.value] : true}) 
     : this.setState({{[data.value] : false}}); 
}; 

methodSelected = (event, data) => {  
    this.setState({[data.value] : data.checked}) 
};