Javascript ReactJS(使用coreui):下拉组件未反映正确的菜单单击

Javascript ReactJS(使用coreui):下拉组件未反映正确的菜单单击,javascript,reactjs,core-ui,Javascript,Reactjs,Core Ui,我试图用ReactJS和coreui组件构建一个前端。这是我试图实现“下拉”菜单的代码: 类DropdownTest扩展了React.Component{ 建造师(道具){ 超级(道具); 此.state={ 值:null, }; } handleClick(一){ this.setState({value:i}); console.log(“单击“+i+”,this.state.value=“+this.state.value”); } renderItem(值){ 返回( this.hand

我试图用ReactJS和coreui组件构建一个前端。这是我试图实现“下拉”菜单的代码:

类DropdownTest扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
值:null,
};
}
handleClick(一){
this.setState({value:i});
console.log(“单击“+i+”,this.state.value=“+this.state.value”);
}
renderItem(值){
返回(
this.handleClick(值)}>
{value}
);
}
render(){
返回(
斧头
{this.renderItem(0)}
{this.renderItem(1)}
{this.renderItem(2)}
);
}
}
这是前端组件:

我想要的是保留一个变量(比如
state.value
),它将跟踪我单击的菜单项。但是当我运行上面的示例时,我发现上面的代码没有正确地跟踪单击序列。在控制台上,我得到这些输出--

例如,当我第一次单击菜单
0
时,控制台输出为
clicked 0,this.state.value=null
,尽管我是在更新状态后打印的(请参阅
handleClick(I)
功能)。再次单击菜单
1
,控制台输出为
clicked 1,this.state.value=0
,依此类推。你明白我的意思

我该如何解决这个问题

注意:组件
CDropdown
CDropdown菜单
cdropdownttoggle
CDropdownItem
来自库。

setState()可以异步设置状态。因此,如果您想确保使用更新的状态,您应该给它(setState方法)一个回调,以便在状态更新后运行

handleClick(i) {
    this.setState({ value: i }, () => {
       console.log("clicked " + i + ", state.value = " + this.state.value);
    });
}

有关更多信息,请查看此项:=>

似乎不起作用,它给出了此错误
TypeError:无法读取未定义的属性“value”
抱歉,这是我的错误。我编辑了代码,现在就试试。