我创建了这个代码,点击一个按钮,它的id在数组'allInterest'中连接。
但是在这里我注意到了,它的设置状态一个状态落后。如果我第一次点击按钮然后在控制台中,它的数组是空白但当我点击另一个按钮然后它是第一次点击按钮Id同样继续下去。
请指导我为什么会这样的事情发生。谢谢你的期待
export default class Test extends Component {
constructor(props, context) {
super(props, context);
this.handleChange = this.handleChange.bind(this);
this.state = {
value:'',
numbers:[1, 2, 3, 4, 5],
posts : [
{id: 1, topic:"Animal"},
{id: 2, topic:"Food"},
{id: 3, topic:"Planet"},
{id: 4, topic:"Nature"},
],
btnSelected:false,
allInterest:[],
};
console.log(this.state);
}
handleChange(e) {
//console.log(e.target.value);
const name = e.target.name;
const value = e.target.value;
this.setState({[name]: value});
console.log(this.state)
}
getInterest(id){
console.log(id);
console.log(this.state.allInterest)
// if(this.state.allInterest.length>0 )
// {
// console.log("Yes we exits");
// }
// else
// {
console.log(id)
// this.setState({
// allInterest:this.state.allInterest.concat(id)
// })
this.setState((prevState) => ({
allInterest: prevState.allInterest.concat([id])
}));
// }
console.log(this.state)
}
render() {
// numbers = [1, 2, 3, 4, 5];
return (
<div>
<div className="signupApp">
Test
{this.state.listobj}
{ this.state.posts.map((posts,index) =>
<li key={'tab'+index} class="btn btn-default" onClick={()=>this.getInterest(posts.id)} onChange={() => this.handleChange(this.event)}>{posts.topic}</li>
)}
</div>
</div>
);
}
}