我有这样的状态,我想更新的属性name
和location
以动态的方式。
this.state = {
players: [{
name: '',
location: ''
},
{
name: '',
location: ''
}]
}
这个想法是,您可以单击一个按钮来添加另一个/删除播放器。对于每个玩家,这些输入字段应该会出现(这是我实现的),但是我无法更改更改状态。
最好是这样的东西(但我无法使其在这种情况下起作用)。当然,除非有更好的方法可以做到这一点(我在React中还是个新手)。
this.handleChange = (event) => { let obj = {...this.state.obj }; obj [event.target.name] = event.target.value; this.setState({obj }); }
任何帮助将不胜感激!
您可以将临时ID值添加到玩家列表中,并在更改时传递目标ID,并更改字段,并相应地更改状态
const onPlayerChange = ({target : { id , name , vlaue}}) =>{
const newPlayersState = this.state.players.map(player=>{
if(player.id === id) return {...player,[name]:value}
return player;
})
this.setState({players:newPlayersState})
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句