Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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 如何处理可能是数组或可能只是单个项组件的值_Javascript_Reactjs - Fatal编程技术网

Javascript 如何处理可能是数组或可能只是单个项组件的值

Javascript 如何处理可能是数组或可能只是单个项组件的值,javascript,reactjs,Javascript,Reactjs,我是一个很新的反应,并试图做一个用户调查,在这个组件中,我与复选框,我发现有点棘手的工作。我希望用户选择两个选项,然后在两个选项之间加一个逗号,我怎么做 早些时候,我在Summary.js组件中使用了stageArtCategory.join(“,”),但如果用户只选择了一个选项而不是两个选项,则会破坏Summary的呈现 代码: 从“React”导入React; 从“./NextQuestionButton”导入NextQuestionButton 从“./Popup”导入弹出窗口 const

我是一个很新的反应,并试图做一个用户调查,在这个组件中,我与复选框,我发现有点棘手的工作。我希望用户选择两个选项,然后在两个选项之间加一个逗号,我怎么做

早些时候,我在Summary.js组件中使用了stageArtCategory.join(“,”),但如果用户只选择了一个选项而不是两个选项,则会破坏Summary的呈现

代码:

从“React”导入React;
从“./NextQuestionButton”导入NextQuestionButton
从“./Popup”导入弹出窗口
const QuestionStageArtCheckbox=({
舞台分类,
设置标记类别,
页
设置页,
第二个问题
}) => {
const onStageArtChange=(stageArtValue)=>{
if(阶段分类包括(阶段价值)){
setStageArtCategory(stageArtCategory.filter((项)=>item!==stageArtValue))
}否则{
setStageArtCategory([…stageArtCategory,stageArtValue])
} 
}
常量stageartGroup=[
“我支持实验,我需要看到一些我不能马上理解的东西”,
“我想和我的孩子跳舞”,
“歌剧”,
“剧院”,
“音乐剧”,
“音乐会”,
“我只是怀念集体的感觉,渴望能用别人的眼睛看东西——请只看一次!”,
“演出后我想和朋友们一起喝啤酒”
]
返回(
{/*Q*/}


你还想体验什么样的舞台艺术?选择2,因为它们有点重叠!我更喜欢将这些值视为数组。因此,每当我需要使用这些值时,我都会使用
.concat
方法将其转换为数组

函数任意函数(arrayOrSingle){
让数组=[].concat(arrayOrSingle);
//用数组做些什么
}

先前将useState初始化为空字符串,但将其更改为空数组。这解决了问题

const [stageArtCategory, setStageArtCategory] = useState([])

嘿,欢迎来到Stack Overflow。所以,我已经很好地阅读了代码,它看起来应该总是返回一个数组。也许你看到的是它被初始化为null或未定义,所以你的stageArtCategory.join(',')在摘要中试图对没有该方法的东西调用“join”?如果你尝试
(stageArtCategory | | |[])。join(',')
总之,这能解决问题吗?谢谢你提供了一个非常有用的答案。我在Form.js中添加了useState,使其为const[stageArtCategory,setStageArtCategory]=useState([]),然后它只使用stageArtCategory.join(','))也一样,但我已经添加了你的澄清。太好了!很高兴你解决了。
const [stageArtCategory, setStageArtCategory] = useState([])