Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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/1/typescript/9.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
Reactjs 三元运算符:应为赋值或函数调用,而应为表达式_Reactjs_Typescript - Fatal编程技术网

Reactjs 三元运算符:应为赋值或函数调用,而应为表达式

Reactjs 三元运算符:应为赋值或函数调用,而应为表达式,reactjs,typescript,Reactjs,Typescript,我试图映射typescript接口对象的数组,并在表中打印其值。我的数组如下所示: export interface data { fields?: field[]; } export interface field { name: string; description: string; subfields: subfield[];

我试图映射typescript接口对象的数组,并在表中打印其值。我的数组如下所示:

export interface data {
                fields?: field[];
            }

export interface field {
                name: string;
                description: string;
                subfields: subfield[];
            }
但我只想打印
字段
,该字段的
field.name
等于
requiredName

使用三元运算符定义条件时,我得到以下错误:
需要赋值或函数调用,而看到的是表达式

如果能在定义条件语句以映射对象时得到一些帮助,我将不胜感激。我以前也使用过三元运算符,但只用于在表单元格中打印值,而不是动态创建值

以下是我目前的代码:

           <Table>
            <TableBody>
              <TableRow >
                <TableCell>
                {props.fields.map((it) =>
                  {it.name===requiredName ? (
                    <Table>...</Table>
                  ) : (
                    null
                  )}
                )} 
                </TableCell>
              </TableRow>
            </TableBody>
          </Table>

{props.fields.map((it)=>
{it.name==requiredName(
...
) : (
无效的
)}
)} 

提前感谢。

您缺少三元运算符前面的返回语句

应该是:

return it.name===requiredName ? (
                    <Table>...</Table>
                  ) : (
                    null
                  )
返回它。name==requiredName?(
...
) : (
无效的
)

您缺少三元运算符前面的return语句

应该是:

return it.name===requiredName ? (
                    <Table>...</Table>
                  ) : (
                    null
                  )
返回它。name==requiredName?(
...
) : (
无效的
)

在arrow函数中有花括号,因此三元运算符作为函数体中的语句执行,但不返回

这就是您当前拥有的:(我刚刚向函数体添加了隐式的
returnundefined


arrow函数中有花括号,因此三元运算符作为函数体中的语句执行,但不返回

这就是您当前拥有的:(我刚刚向函数体添加了隐式的
returnundefined


您是否尝试过在三元前面返回?您没有返回任何内容,即错误
导出接口数据{fields?:field[];}
这里的三元语法不是错误吗@jarivak不是三元的您是否尝试过在三元前面返回?您没有返回任何内容,这就是错误
导出接口数据{fields?:field[];}
这里的三元语法不是错误的吗@jarivak那不是三元的谢谢你,@Robert那解决了你的问题吗?非常感谢,@Robert那解决了你的问题吗?
<TableCell>
  {props.fields.map((it) => 
    it.name===requiredName ? (<Table>...</Table>) : (null)
  )} 
</TableCell>