array.map() 在 React JS 中一起返回元素

Posted

技术标签:

【中文标题】array.map() 在 React JS 中一起返回元素【英文标题】:array.map() is returning elements all together in React JS 【发布时间】:2022-01-19 05:29:56 【问题描述】:

const test = () = 

const array = ['hello', 'myNameIs']

return (


array.map((arr) => (
  <div>arr</div>
  <button>Edit</button>
  )


)


这个 .map() 方法没有按我的预期工作。

通过代码,我试图得到

hello [button]
myNameIs [button]

像这样。

但是当我实际渲染代码时,我得到了

hello MynameIs [button]

在这种情况下,如何更改 .map() 语句?

我应该使用索引吗?

【问题讨论】:

【参考方案1】:

您没有使用正确的箭头函数语法 它应该像 const test = ()=&gt; React 组件 JSX 应该返回一个父容器尝试像这样包装它:

 const Test = () => 
    const array = ["hello", "myNameIs"];

    return (
      <>
        array.map((arr) => 
          return (
            <>
              <div>arr</div>
              <button>Edit</button>
            </>
          );
        )
      </>
    )
  

这里是工作代码沙箱链接https://codesandbox.io/s/kind-easley-jxiei?file=/src/App.js:57-336

希望对你有帮助。

【讨论】:

【参考方案2】:
const test = () = 
  const array = ['hello', 'myNameIs']
  return (

  array.map((item,key) => (
    <div key=item>item</div><button>Edit</button>
  ))

【讨论】:

谢谢阿克谢!我忘记写return了!【参考方案3】:

看看下面的例子,我几乎是用你的代码创建的,它按照你的预期工作,没有问题。

function App() 
  const array = ['hello', 'myNameIs'];
  return array.map(item => (
    <div key=item>
      item <button>Edit</button>
    </div>
  ));


ReactDOM.render(<App />, document.getElementById("root"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>

【讨论】:

谢谢你。很高兴看到详细的解释。【参考方案4】:

div 标记内创建按钮。您也可以根据需要使用样式来对齐项目

array.map((arr) => (
  <div>arr <button>Edit</button></div>
 )

【讨论】:

再次,得到相同的答案:( IDK 发生了什么!

以上是关于array.map() 在 React JS 中一起返回元素的主要内容,如果未能解决你的问题,请参考以下文章

Array.map 中的 React 功能组件在将函数作为道具传递时总是重新渲染

即使 .map 循环通过数组的所有索引,也无法在我的 React 应用程序中的 array.map 中显示我的 JSX 中的图像

React Native:Array.map 不在 Scrollview 中呈现

尝试在 React JS 中按部分显示 JSON

兼容低版本JS的Array.map方法

了解 Promise.all 和 Array.map()