Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在React中将div的选择和状态管理为单选按钮选项_Javascript_Reactjs_Onclick_Radio Button_State - Fatal编程技术网

Javascript 在React中将div的选择和状态管理为单选按钮选项

Javascript 在React中将div的选择和状态管理为单选按钮选项,javascript,reactjs,onclick,radio-button,state,Javascript,Reactjs,Onclick,Radio Button,State,我希望找到React.js解决常见问题的方法 我有五个div,当单击时,它们将充当单选按钮选项 HTML可能如下所示: //List of option DIVs which act as radio buttons when clicked const options = () => ( <div> <div>Option 1</div> <div>Option 2</div> <div>

我希望找到React.js解决常见问题的方法

我有五个div,当单击时,它们将充当单选按钮选项

HTML可能如下所示:

//List of option DIVs which act as radio buttons when clicked
const options = () => (
  <div>
    <div>Option 1</div>
    <div>Option 2</div>
    <div>Option 3</div>
    <div>Option 4</div>
    <div>Option 5</div>
  </div>
);

// If an option DIV is selected, prepend this as the first child inside it
const isSelectedOverlay = () => (
    <div>Selected (overlay)</div>
);
我不明白的问题是:

单击选项DIV后,我需要通过在该元素覆盖DIV中添加一个子元素,将单击的元素设置为活动项。如何存储和管理哪个选项DIV是当前选定的元素

如何管理初始状态和onClick?我可以在元素本身上使用数据属性并获得它吗?还是使用选项ID调用onClick

如何删除所有其他选定选项并使其成为选定选项

我需要状态来存储当前选择的选项,但我不确定如何使用该状态来管理选择本身

我真的很感谢你的帮助。我一直在努力找出最好的方法

UI如下所示:

//List of option DIVs which act as radio buttons when clicked
const options = () => (
  <div>
    <div>Option 1</div>
    <div>Option 2</div>
    <div>Option 3</div>
    <div>Option 4</div>
    <div>Option 5</div>
  </div>
);

// If an option DIV is selected, prepend this as the first child inside it
const isSelectedOverlay = () => (
    <div>Selected (overlay)</div>
);

谢谢

Barney,您应该尝试将组件声明为类,以便可以对其进行状态管理。 有关如何使用状态的说明,请查看此文档

您的组件应该在该状态下有一个选项列表和一个所选选项的索引。遍历列表并对所选索引进行特殊处理。您可以让每个选项都是它自己的组件和标识它的索引,一个用于设置状态的onChange回调函数和一个isSelected属性。如果选择了道具,则可以将选定的覆盖html添加到道具中