Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 JSX中的多个if/else_Javascript_Reactjs_Jsx - Fatal编程技术网

Javascript JSX中的多个if/else

Javascript JSX中的多个if/else,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,我试图在jsx中的map()中增加一个变量,并隐藏基于它的元素。我得到以下错误 未能编译。 分析错误:相邻的JSX元素必须包装在封闭标记中。你想要一个JSX片段吗 我想这是困扰我的争吵 {myIncrement%2==0&&} 有什么想法吗?(我不是全职开发人员,所以在jsx中有点迷失) 下面是该部分的完整代码 {props.config.map(row => ( (row.isRequired || props.data[row.key]) && <

我试图在jsx中的
map()
中增加一个变量,并隐藏基于它的元素。我得到以下错误

未能编译。
分析错误:相邻的JSX元素必须包装在封闭标记中。你想要一个JSX片段吗

我想这是困扰我的争吵

{myIncrement%2==0&&}

有什么想法吗?(我不是全职开发人员,所以在jsx中有点迷失)

下面是该部分的完整代码

{props.config.map(row => (
  (row.isRequired || props.data[row.key]) && 
     <React.Fragment>
        {row.isFullWidth ? 
          <div data-key-id={row.key} key={row.key} className="">
            <div className="">
              <div className="">some key</div>
                <div className="">some value</div>
            </div>
          </div>
         :
          <React.Fragment>
            {myIncrement % 2 == 0 && <div data-key-id={row.key} key={row.key} className="">}
              <div className="">
                <div className="">{row.key}:</div>
                <div className="">{row.value}</div>
              </div>
            {myIncrement % 2 == 0 && </div>}

            {myIncrement = !row.isFullWidth ? myIncrement + 1 : myIncrement}
          </React.Fragment>
         }
      </React.Fragment>
))}
{props.config.map(行=>(
(row.isRequired | | props.data[row.key])&&
{row.isFullWidth?
一些钥匙
一些价值
:
{myIncrement%2==0&&}
{row.key}:
{row.value}
{myIncrement%2==0&&}
{myIncrement=!row.isFullWidth?myIncrement+1:myIncrement}
}
))}
第一个问题:地图周围缺少碎片 基本上你不能有一个jsx看起来像

<foo/>
<bar/>

因为React无法知道根元素,它需要执行React魔术,将JSX转换为反应式HTML,相反,您需要

<>
  <foo/>
  <bar/>
</>

这就是关于相邻元素的错误消息的含义。地图将创建相邻元素:

['a', 'b', 'c'].map(letter => <div>{letter}</div>)

will produce

<div>a</div>
<div>b</div>
<div>c</div>
['a','b','c'].map(字母=>{letter})
将产生
A.
B
C
要修复此错误,只需在地图周围添加一个片段:

<>
  { props.config.map(row => (
    /* ... */
  )}
</>

{props.config.map(行=>(
/* ... */
)}
第二个问题:JSX语法无效 这是无效的JSX:

{ myIncrement % 2 == 0 && <div data-key-id={row.key} key={row.key} className=""> }
  <div className="">
    <div className="">{row.key}:</div>
    <div className="">{row.value}</div>
  </div>
{myIncrement % 2 == 0 && </div>}
{myIncrement%2==0&&}
{row.key}:
{row.value}
{myIncrement%2==0&&}
我知道在编写它时它是有意义的,但它不会编译,因为React将尝试分别计算
myIncrement%2==0&&
myIncrement%2==0&&
,这是不可能的(现在还不可能)

您可以获得如下类似信息:

// define this part of the component somewhere
const Foo = ({ key, value}) => (
  <div>
    <div>{key}:</div>
    <div>{value}</div>
  </div>
);

// surround it or not by a div, depending on the increment value
{ myIncrement % 2 == 0 ? (
    <div data-key-id={row.key} key={row.key}>
      <Foo key={row.key} value={row.value}/>
    </div>
  ) : (
    <Foo key={row.key} value={row.value}/>
  )
}
//在某处定义组件的这一部分
常量Foo=({key,value})=>(
{key}:
{value}
);
//是否用div将其环绕,取决于增量值
{myIncrement%2==0(
) : (
)
}
第一个问题:地图周围缺少碎片 基本上你不能有一个jsx看起来像

<foo/>
<bar/>

因为React无法知道根元素,它需要执行React魔术,将JSX转换为反应式HTML,相反,您需要

<>
  <foo/>
  <bar/>
</>

这就是有关相邻元素的错误消息的含义。地图将创建相邻元素:

['a', 'b', 'c'].map(letter => <div>{letter}</div>)

will produce

<div>a</div>
<div>b</div>
<div>c</div>
['a','b','c'].map(字母=>{letter})
将产生
A.
B
C
要修复此错误,只需在地图周围添加一个片段:

<>
  { props.config.map(row => (
    /* ... */
  )}
</>

{props.config.map(行=>(
/* ... */
)}
第二个问题:JSX语法无效 这是无效的JSX:

{ myIncrement % 2 == 0 && <div data-key-id={row.key} key={row.key} className=""> }
  <div className="">
    <div className="">{row.key}:</div>
    <div className="">{row.value}</div>
  </div>
{myIncrement % 2 == 0 && </div>}
{myIncrement%2==0&&}
{row.key}:
{row.value}
{myIncrement%2==0&&}
我知道在编写它时它是有意义的,但它不会编译,因为React将尝试分别计算
myIncrement%2==0&&
myIncrement%2==0&&
,这是不可能的(现在还不可能)

您可以获得如下类似信息:

// define this part of the component somewhere
const Foo = ({ key, value}) => (
  <div>
    <div>{key}:</div>
    <div>{value}</div>
  </div>
);

// surround it or not by a div, depending on the increment value
{ myIncrement % 2 == 0 ? (
    <div data-key-id={row.key} key={row.key}>
      <Foo key={row.key} value={row.value}/>
    </div>
  ) : (
    <Foo key={row.key} value={row.value}/>
  )
}
//在某处定义组件的这一部分
常量Foo=({key,value})=>(
{key}:
{value}
);
//是否用div将其环绕,取决于增量值
{myIncrement%2==0(
) : (
)
}
您不能做的事情:

  <React.Fragment>
    {myIncrement % 2 == 0 && <div data-key-id={row.key} key={row.key} className="">} // <= opening tag
      <div className="">
        <div className="">{row.key}:</div>
        <div className="">{row.value}</div>
      </div>
    {myIncrement % 2 == 0 && </div>} // <= Enclosing tag

    {myIncrement = !row.isFullWidth ? myIncrement + 1 : myIncrement}
  </React.Fragment>

{myIncrement%2==0&&}/您不能做的事情:

  <React.Fragment>
    {myIncrement % 2 == 0 && <div data-key-id={row.key} key={row.key} className="">} // <= opening tag
      <div className="">
        <div className="">{row.key}:</div>
        <div className="">{row.value}</div>
      </div>
    {myIncrement % 2 == 0 && </div>} // <= Enclosing tag

    {myIncrement = !row.isFullWidth ? myIncrement + 1 : myIncrement}
  </React.Fragment>


{myIncrement%2==0&&}//您能添加周围的代码吗?您收到的错误表明您在组件中返回了多个JSX元素,这是不允许的,它们应该用单个组件{myIncrement%2==0&&}{row.key}:{row.value}包装{myIncrement%2==0&&}`不能分离开头和结尾标记。它们必须返回together@dbramwell该错误与此代码隔离,是
myIncrement%2==0
代码导致了该错误,我只是不知道如何解决它。能否添加周围的代码?您收到的错误表明您返回了多个JSX元素在您的组件中(这是不允许的),它们应该用单个组件包装`{myIncrement%2==0&&}{row.key}:{row.value}{myIncrement%2==0&&}`不能分离开头和结尾标记。它们必须返回together@dbramwell错误与此代码隔离,它是
myIncrement%2==0
代码导致错误的原因,我只是不知道如何解决它。不,问题发生在第二个
React内。Fragment
不需要映射之间的片段,请注意因为它返回一个数组,数组可以在JSX中呈现。这一部分很好。这也不是正确的答案。我仍然需要第二个内容放在包装器中。但是我看到了我的第一个语句的问题,但这是我必须要做的,才能使它工作。我想我必须在JSX之外和字符串concat自己解决它。不,问题发生在第二个
React中。Fragment
不需要映射之间的片段,因为它返回一个数组,并且可以在JSX中呈现数组。这一部分很好。这也不是正确的答案。我仍然需要第二个内容在包装器中。但是我看到了第一个语句的问题,但这就是为什么我必须为它工作。我想我必须在JSX和字符串concat之外解决它。唯一的