Javascript 反应选择下拉选择未正确存储

Javascript 反应选择下拉选择未正确存储,javascript,reactjs,react-select,Javascript,Reactjs,React Select,我使用下拉菜单允许用户在a、B和C之间选择多个选项。目前这在UI上有效,但当取消选择某个选项时,它不会从阵列中删除。有谁能给我一些提示,告诉我怎么做?(例如,选择A、B和C,然后取消选择A,如何从阵列中删除A?) var-choice=[]; 常量选项=[ {值:'a',标签:'a'}, {值:'b',标签:'b'}, {值:'c',标签:'c'}, ]; handleChange=(selectedChoice)=>{ this.setState({selectedChoi

我使用下拉菜单允许用户在a、B和C之间选择多个选项。目前这在UI上有效,但当取消选择某个选项时,它不会从阵列中删除。有谁能给我一些提示,告诉我怎么做?(例如,选择A、B和C,然后取消选择A,如何从阵列中删除A?)

var-choice=[];
常量选项=[
{值:'a',标签:'a'},
{值:'b',标签:'b'},
{值:'c',标签:'c'},
];          
handleChange=(selectedChoice)=>{
this.setState({selectedChoice});
对于(变量i=0;i
然后,在下面的代码
控制台中调用log(choice)
,单击按钮时打印。其次是:

render(){
返回(
);
}

推和POP将不起作用,因为选项可能在中间。

< P>你不需要另一个选择变量。你已经有了<代码>选择的选择< /代码>状态,它将为你存储所有选定的值。


工作解决方案:

您不需要另一个choice变量。您已经有了将为您存储所有选定值的
selectedChoice
状态


工作解决方案:

setState
是异步的,因此您不能在设置后直接使用此.state
,除非它已经更新。
setState
是异步的,因此,您不能在设置后直接使用
此。状态
,除非它已更新。如果我只想记录它们所在的数组(打印[[0[值:a,标签:a]][1[值:b,标签:b]],则此操作有效但由于值保存在selectedChoice中的一个编号数组中,因此要获取已选择的实际值,您需要selectedChoice[0].value,这就是为什么我有for循环。有没有一种方法可以在不执行此操作的情况下从这些数组中获取值,因为您的代码不会返回任何内容或打印这些值。(要点是在代码后面只显示与所选选项匹配的结果,例如,只显示带有A标记的结果)@Uciebila您需要使用
array\u map
方法在数组中循环。我已经相应地更新了代码。谢谢,我不得不移动一些东西以使其与handleClick按钮相匹配,单击等,并删除“+”,”'从输出中返回choice.value,因为这是由下拉列表本身设置的,否则会起作用!如果我只想记录它们所在的数组(打印[[0[值:a,标签:a]][1[值:b,标签:b]]]但由于值保存在selectedChoice中的一个编号数组中,因此要获取已选择的实际值,您需要selectedChoice[0].value,这就是为什么我有for循环。有没有一种方法可以在不执行此操作的情况下从这些数组中获取值,因为您的代码不会返回任何内容或打印这些值。(要点是在代码后面只显示与所选选项匹配的结果,例如,只显示带有A标记的结果)@Uciebila您需要使用
array\u map
方法在数组中循环。我已经相应地更新了代码。谢谢,我不得不移动一些东西以使其与handleClick按钮相适应,单击等,并从输出中删除“+”,“”返回选项。值因为这是由下拉菜单本身设置的,否则会起作用!