这里怎么了?三元内部的组件

问题描述 投票:0回答:2
    export const Date = ({ startDate, endDate, displayInUserTime }) => {
    const parsedStartDate = moment.utc(startDate).format("ll");
    const parsedEndDate = moment.utc(endDate).format("ll");
    const parsedLocalStartDate = moment(startDate).format("ll");
    const parsedLocalEndDate = moment(endDate).format("ll");

    return (
        <Content column className="col-1">
            {displayInUserTime ? 
            (<div>{parsedStartDate}</div>
            {parsedStartDate !== parsedEndDate && <div>{parsedEndDate}</div>}) 
            :
            (<div>{parsedLocalStartDate}</div>
            {parsedLocalStartDate !== parsedLocalEndDate && <div>{parsedLocalEndDate}</div>})}
        </Content>
    );
};

错误:解析错误:意外的令牌,预期为“,”

33 | {displayInUserTime? 34 | ({parsedStartDate}

35 | {parsedStartDate!== parsedEndDate && {parsedEndDate}}) | ^ 36 | : 37 | ({parsedLocalStartDate} 38 | {parsedLocalStartDate!== parsedLocalEndDate && {parsedLocalEndDate}})}

javascript reactjs components ternary
2个回答
0
投票

而不是使用三元运算符制作思维游戏,如果使用else语句,您将如何使用

  let startDate = null;

  if(displayInUserTime) {
    startDate = <>
      <div>{parsedStartDate}</div>
      {parsedStartDate !== parsedEndDate && <div>{parsedEndDate}</div>}
    </>;
  }else {
    startDate = <>
      <div>{parsedLocalStartDate}</div>
      {parsedLocalStartDate !== parsedLocalEndDate && <div>{parsedLocalEndDate}</div>}
    </>
  }

  return (
        <Content column className="col-1">
            {startDate}
        </Content>
    );

0
投票

您正在{}简化代码中返回多个元素,看起来像bool?<one/><two/>:<three/><four/>,另一个答案将代码更改为if语句,但您可以将三元数包装在React.Fragment中:bool?<><one/><two/></>:<><three/><four/></>

您的代码可能是:

<Content column className="col-1">
  {displayInUserTime ? (
    <>
      <div>{parsedStartDate}</div>
      {parsedStartDate !== parsedEndDate && (
        <div>{parsedEndDate}</div>
      )}
    </>
  ) : (
    <>
      <div>{parsedLocalStartDate}</div>
      {parsedLocalStartDate !== parsedLocalEndDate && (
        <div>{parsedLocalEndDate}</div>
      )}
    </>
  )}
</Content>
© www.soinside.com 2019 - 2024. All rights reserved.