Javascript - React 解构数组

标签 javascript reactjs destructuring

我正在尝试学习 ReactJS,但在理解以下代码片段中发生的解构时遇到了一些困难:

const IngredientsList = ({ list }) =>  
    React.createElement('ul', null,
      list.map((ingredient, i) =>
        React.createElement('li', {key: i}, ingredient))

const Ingredients = React.createFactory(IngredientsList)
const list = [
     "1 lb Salmon",
     "1 cup Pine Nuts",
     "2 cups Butter Lettuce",
 ]    

这应该等同于:

 const IngredientsList = props =>
  ....
     props.list.map(...)

我认为只有在一个对象上才可以进行这样的解构。您能否阐明以上两者是如何等效的?是否有特定的 react ?

最佳答案

让我们格式化您的示例并添加一行来展示如何使用它:

const IngredientsList = ({list}) => {
  return React.createElement("ul", null, list.map((ingredient, i) => {
    return React.createElement("li", {key: i}, ingredient)
  }))
}

const Ingredients = React.createFactory(IngredientsList)
const list = [
  "1 lb Salmon",
  "1 cup Pine Nuts",
  "2 cups Butter Lettuce",
]

// usage:
Ingredients({list})

如您所见,您传递给 Ingredients 的是 props Object。同一个对象可以作为 IngedientsList 函数的参数被解构。

您可以在 this explanation 中找到另一个使用 React.createFactory 的例子:传递一个包含 props 的对象。

关于Javascript - React 解构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45644446/

相关文章:

javascript - 连接后忽略服务器端的 socket.emit?

javascript - 如何从框架中获取url?

reactjs - react Jest : Cannot use import statement outside a module

Javascript将对象值插入到具有相同键的另一个对象中

javascript - JavaScript 函数参数中对象的部分解构

javascript - ReactJS 异步渲染

javascript - 将 Google Earth Engine 应用程序嵌入到网页中

javascript - 使用水合物而不是从 react-dom 渲染时检测损坏的图像

javascript - ES6/下一个 : object destructuring with rest - grouping

lisp - 将列表解构为字符串的函数