Javascript 加载部件时,检查支柱是否未定义

Javascript 加载部件时,检查支柱是否未定义,javascript,reactjs,conditional-operator,conditional-rendering,Javascript,Reactjs,Conditional Operator,Conditional Rendering,为了呈现一个或另一个屏幕,我有一个关于检查功能组件中是否未定义道具的问题 我的功能组件: const InfoHeader = ({population, infected, recovered, deaths, active}) => { console.log(population) return( <div className="infoHeader-wrapper"> ///code to render

为了呈现一个或另一个屏幕,我有一个关于检查功能组件中是否未定义道具的问题

我的功能组件:

const InfoHeader = ({population, infected, recovered, deaths, active}) => {
console.log(population)
    return(
        <div className="infoHeader-wrapper">
            ///code to render the information passed into the props
        </div>
    )
}

export default InfoHeader
有没有更好的方法来创建三元运算符,以便有条件地呈现函数组件返回中的一个或另一个元素?比如:

return(
   allProps !== undefined ?? renderX : renderY
)

非常感谢

切换是一种可能性

switch (expr) {
  case "Oranges":
    console.log("Oranges are $0.59 a pound.");
    break;
  case "Apples":
    console.log("Apples are $0.32 a pound.");
    break;
  case "Bananas":
    console.log("Bananas are $0.48 a pound.");
    break;
  case "Cherries":
    console.log("Cherries are $3.00 a pound.");
    break;
  case "Mangoes":
  case "Papayas":
    console.log("Mangoes and papayas are $2.79 a pound.");
    break;
  default:
    console.log("Sorry, we are out of " + expr + ".");
}

console.log("Is there anything else you'd like?");

在您的情况下,您可以这样使用它:

switch (population !==undefined && infected !== undefined) {
  case true:
    console.log('All is defined');
    break;
  case false:
    console.log('Not all is defined.');
    break;
  
  default:
    console.log('Default');
}

转换是一种可能性

switch (expr) {
  case "Oranges":
    console.log("Oranges are $0.59 a pound.");
    break;
  case "Apples":
    console.log("Apples are $0.32 a pound.");
    break;
  case "Bananas":
    console.log("Bananas are $0.48 a pound.");
    break;
  case "Cherries":
    console.log("Cherries are $3.00 a pound.");
    break;
  case "Mangoes":
  case "Papayas":
    console.log("Mangoes and papayas are $2.79 a pound.");
    break;
  default:
    console.log("Sorry, we are out of " + expr + ".");
}

console.log("Is there anything else you'd like?");

在您的情况下,您可以这样使用它:

switch (population !==undefined && infected !== undefined) {
  case true:
    console.log('All is defined');
    break;
  case false:
    console.log('Not all is defined.');
    break;
  
  default:
    console.log('Default');
}

你可以这样做:

switch (population !==undefined && infected !== undefined) {
  case true:
    console.log('All is defined');
    break;
  case false:
    console.log('Not all is defined.');
    break;
  
  default:
    console.log('Default');
}
const bla={
人口:空,
感染:未定义,
恢复:1,,
死亡:没错,
活动:“是”
}
const areAllTruthy=Object.values(bla).every(v=>v!==null&&v!==undefined)

console.log(areAllTruthy)
您可以执行以下操作:

switch (population !==undefined && infected !== undefined) {
  case true:
    console.log('All is defined');
    break;
  case false:
    console.log('Not all is defined.');
    break;
  
  default:
    console.log('Default');
}
const bla={
人口:空,
感染:未定义,
恢复:1,,
死亡:没错,
活动:“是”
}
const areAllTruthy=Object.values(bla).every(v=>v!==null&&v!==undefined)

console.log(areAllTruthy)
您可以创建一个函数,该函数使用道具验证所有未定义的值:

const InfoHeader = (props) => {
  const {population, infected, recovered, deaths, active} = props

  const propsValid = (props) => Object.values(props).every(prop => prop !== undefined)

  console.log(population)
  return(
    propsValid(props) ? renderX : renderY
  )
}

export default InfoHeader

您可以创建一个函数,该函数使用道具验证所有未定义的值:

const InfoHeader = (props) => {
  const {population, infected, recovered, deaths, active} = props

  const propsValid = (props) => Object.values(props).every(prop => prop !== undefined)

  console.log(population)
  return(
    propsValid(props) ? renderX : renderY
  )
}

export default InfoHeader

如果问题是可读性,您也可以这样做:

 const scenario = population !==undefined && infected !== undefined && ...
 return(
    scenario ? renderX : renderY
 )         

如果问题是可读性,您也可以这样做:

 const scenario = population !==undefined && infected !== undefined && ...
 return(
    scenario ? renderX : renderY
 )         


因此,将道具传递给一个单独的对象,并检查对象中的所有项目是否都在“那里”?好的,这确实有意义。Thanks@JorgeGuerreiro您不需要单独的对象,
bla
可以是
props
。我刚刚发布了一个简单的js代码片段,让它可以运行。因此,将道具传递给一个单独的对象,并检查对象中的所有项目是否都在“那里”?好的,这确实有意义。Thanks@JorgeGuerreiro您不需要单独的对象,
bla
可以是
props
。我刚刚发布了一个简单的js代码片段,让它可以运行。我不认为这对我有帮助,但谢谢。我不认为这对我有帮助,但谢谢。我认为这是一个更简洁的解决方案。快速提问,我不能简单地使用Object.values(props.every)(element=>element!==undefined)创建三元函数,而不是创建该函数吗?renderX:render Y或者为了可读性,我应该坚持使用这个函数?如果你愿意,你可以使用directat三元运算符。我提取到一个函数只是为了可读性,但是你可以采用你想要的方法。是的,我想在可读性方面,你的答案更有意义。非常感谢:)不客气:)我认为这是更整洁的解决办法。快速提问,我不能简单地使用Object.values(props.every)(element=>element!==undefined)创建三元函数,而不是创建该函数吗?renderX:render Y或者为了可读性,我应该坚持使用这个函数?如果你愿意,你可以使用directat三元运算符。我提取到一个函数只是为了可读性,但是你可以采用你想要的方法。是的,我想在可读性方面,你的答案更有意义。非常感谢:)不客气:)这是一个有效的答案谢谢:)不客气:)这是一个有效的答案谢谢:)不客气:)