Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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 如果maybe()函数可用,请添加值_Javascript_Reactjs - Fatal编程技术网

Javascript 如果maybe()函数可用,请添加值

Javascript 如果maybe()函数可用,请添加值,javascript,reactjs,Javascript,Reactjs,我目前在代码中使用以下maybe()函数来添加数据(如果可用)。我想知道是否有更好的方法来写。它似乎有点长,或者这是写它的最好方式 <Formik initialValues={{ firstName: user.firstName, lastName: user.lastName, timezone: user.timezone, email: user.email, headline: maybe(() => user.headline

我目前在代码中使用以下maybe()函数来添加数据(如果可用)。我想知道是否有更好的方法来写。它似乎有点长,或者这是写它的最好方式

<Formik
  initialValues={{
    firstName: user.firstName,
    lastName: user.lastName,
    timezone: user.timezone,
    email: user.email,
    headline: maybe(() => user.headline, "") || "",
    profilePicture: maybe(() => user.profilePicture, "") || "",
  }}
>
  [...]
</Formik>;

乍一看,
user.header | |“
可以,但我建议在对象未定义的情况下使用

const用户={
标题:“你好,世界”
}
console.log(未定义?.header | |“默认值”);//违约
console.log(用户?.header | | |“默认值”);//你好,世界
console.log(用户?.doesNotExist | |“默认值”);//违约

console.log(undefined.header | |“default”);//错误
您的意思是
user.headline | |'
?如果
user.headline
为空或未定义,它将返回默认值
'
export function maybe(exp, d) {
    try {
      const result = exp();
      return result === undefined ? d : result;
    } catch {
      return d;
    }
  }