代码之家  ›  专栏  ›  技术社区  ›  isaacsultan

传递react props并作为objectname.objectname访问

  •  0
  • isaacsultan  · 技术社区  · 7 年前

    我正在导入这样的对象数组 import productData from './productData.js' .

    在哪里? productData.js 看起来像:

    var productData = [{}, {}, ...]
    module.exports = {productData}
    

    但是,现在在组件表达式中 TableComponent 要在阵列上映射,我必须以 productData.productData . 为什么会这样?

    const MainBody = () => {
      return (
        <TableComponent productData={productData.values}> </TableComponent>
      );
    }
    
    const TableComponent = props => {
      const {productData} = props
      const rows = productData.productData && productData.productData.map((row, index) => {
        return (
          <tr>
            <row>hello</row>
          </tr>
        );
      });
      return <tbody>{rows}</tbody>
    }
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   Jonas Wilms    7 年前

    如果你

     import productData from './productData.js'
    

    然后 productData 默认出口 属于 productData.js ,这是一个对象,这个对象:

      { productData }
    

    那个物体有一把钥匙 产品数据 包含所需的数据。现在只导出 产品数据 你有两个选择:

    1)出口 产品数据 作为不将其包装为对象的默认导出:

     export default productData;
     // or
     module.exports = productData;
    
     // import as:
     import productData from "./productData";
     // or
     const productData = require("./productData");
    

    2)出口 产品数据 作为命名导出,然后导入命名导出:

     export { productData };
     // or
     module.exports = { productData };
    
     // import as
     import { productData } from "./productData";
     // or
     const { productData } = require("/.productData");
    

    由于该文件只包含一件事,1)在这里更有意义。

        2
  •  1
  •   Vikram Thakur    7 年前

    您的数组将被导出为一个对象,这就是为什么您必须以 productData.productData . 为了避免这种情况,我们可以这样做。

    // first create an array in product.js file
    const productsArray  = [
      {
       id: 1,
       title: 'Yellow Pail',
      },
      {
       id: 2,
       title: 'Green Pail',
      },
    ]
    

    然后你可以把它导出

    export default { 
      productsArray
    }