Reactjs 使用状态内的三元运算符。对吗?

Reactjs 使用状态内的三元运算符。对吗?,reactjs,Reactjs,我正在设置接收特定道具的组件。此道具是父组件上查找方法的结果对象。状态将是窗体上输入的控制器 当find方法找不到任何内容时,它将返回一个未定义的值。我是这样定义我的状态的: const [foo, setFoo] = useState(props.bar? props.bar._id : ""); 这很有效,但我想知道这样做是否正确。是的,这是完全正确和有效的 我个人喜欢创建一个const initialState,使它更易于阅读 const-Example=props=

我正在设置接收特定道具的组件。此道具是父组件上查找方法的结果对象。状态将是窗体上输入的控制器

当find方法找不到任何内容时,它将返回一个未定义的值。我是这样定义我的状态的:

const [foo, setFoo] = useState(props.bar? props.bar._id : "");

这很有效,但我想知道这样做是否正确。

是的,这是完全正确和有效的

我个人喜欢创建一个const initialState,使它更易于阅读

const-Example=props=>{ 常量initialState=props.bar?props.bar.\u id:; const[foo,setFoo]=useStateinitialState; 返回{foo}; }; 在未定义bar时访问_id。还有一些方法可以解决这个问题

执行此操作的新方法之一是使用新的可选链接操作符?。零聚结算子呢??一起

const initialState=props.bar?\u id; 如果您不支持这些新操作符,也可以使用| |或类似的操作符

const initialState=props.bar | |{}._id | |;
是的,这是完全正确和有效的

我个人喜欢创建一个const initialState,使它更易于阅读

const-Example=props=>{ 常量initialState=props.bar?props.bar.\u id:; const[foo,setFoo]=useStateinitialState; 返回{foo}; }; 在未定义bar时访问_id。还有一些方法可以解决这个问题

执行此操作的新方法之一是使用新的可选链接操作符?。零聚结算子呢??一起

const initialState=props.bar?\u id; 如果您不支持这些新操作符,也可以使用| |或类似的操作符

const initialState=props.bar | |{}._id | |;
这不是个好主意,您可以这样做:const[foo,setFoo]=useStateprops.bar | |;但是我试图存储bar对象的属性,如果我执行const[foo,setFoo]=useStateprops.bar.\u id | |;我将得到无法读取未定义属性_id的错误。我认为您也可以使用useStateprops.bar&&props.bar。_id这不是个好主意,您可以这样做:const[foo,setFoo]=useStateprops.bar | |;但是我试图存储bar对象的属性,如果我执行const[foo,setFoo]=useStateprops.bar.\u id | |;我将得到无法读取未定义属性_id的错误。我认为您也可以使用useStateprops.bar&&props.bar。_idyeah即使我同意它是有效的,但为了增加可编辑性,您可以将运算符分隔为constant@GayatriDipali我不知道你是什么意思?我只是想说,而不是直接让你的转盘操作员在useState内部,创建一个变量并为其分配turnary运算符,然后将其传递到Insdesde useState。我只是写了@Benjamin在codeyeah中显示的内容,我甚至同意它是有效的,但是为了增加可编辑性,你可以将操作符分成constant@GayatriDipali我不知道你是什么意思?我的意思是,与其让你的turnary操作符直接进入你的useState,创建一个变量,并将turnary运算符赋给它,然后将其传递到ISDE useState。我只是写了@Benjamin在代码中显示的内容