【问题标题】:How can I return a JSX react object to the webpage?如何将 JSX 反应对象返回到网页?
【发布时间】:2020-05-14 07:02:02
【问题描述】:

此函数构建每个 jsx obkect 网格并返回它。

function grid_builder(grid,i,j){
    // const classes = useStyles();
    return (
                <div>
                  <Grid container spacing={3}>
                    <Grid item xs={3}>
                      <Paper>{grid[i][j]}</Paper>
                    </Grid>
                  </Grid>
                 </div>
                    );

}

我需要附加到一个 JSX 对象,以便我可以返回页面。

export default function Table() {

  let grid = RandomGrid()
  let rows = grid.length
  let cols = grid[0].length
  for (var i = 0; i < rows; i++) { 
    for (var j = 0; j < cols; j++) { 
        // grid_builder(grid,i,j)
        }
    }
    return(//Need to return something here);

}

【问题讨论】:

    标签: javascript css node.js reactjs jsx


    【解决方案1】:

    这应该可以完成工作。

      const gridArray = []
      for (var i = 0; i < rows; i++) { 
        for (var j = 0; j < cols; j++) { 
            gridArray.push(grid_builder(grid,i,j))
            }
        }
        return gridArray;
    
    

    我不确定你的用例但是我不认为用这种方法创建网格是个好主意,css 网格也很强大,也许可以尝试用它来解决你的问题,因为它们会更高效。

    【讨论】:

      【解决方案2】:

      只将一个对象传递给 grid_builder() 函数。使用 gridBuilder 之类的驼峰命名法或将其设为 GridBuilder 之类的组件

      function gridBuilder(itemInfo){
        // const classes = useStyles();
        return (
          <div>
            <Grid container spacing={3}>
              <Grid item xs={3}>
                <Paper>{itemInfo}</Paper>
              </Grid>
            </Grid>
           </div>
        );
      }
      
      export default function Table() {
        let grid = RandomGrid()
        return grid.map(gridBuilder);
      }

      使其成为组件

        function GridBuilder(props){
            // const classes = useStyles();
            return (
              <div>
                <Grid container spacing={3}>
                  <Grid item xs={3}>
                    <Paper {...props}>{props}</Paper>
                  </Grid>
                </Grid>
               </div>
            );
          }
      
          export default function Table() {
            let grid = RandomGrid()
            return grid.map(item => <GridBuilder {...item} />);
          }

      【讨论】:

      • 我是那个投反对票的人,因为您的示例不适用于 OP 的代码。
      • 谢谢,但这会以网格格式返回吗?
      • @EmileBergeron 谢谢。 IMO,array.map() 是 OP 正在寻找的东西
      • 我同意map、传递对象和为项目创建组件都是好的做法,但在这种情况下,它在您提供的示例中不起作用。您至少需要在地图内进行映射,例如 grid.map(i =&gt; i.map(gridBuilder))
      猜你喜欢
      • 2020-06-14
      • 2010-11-26
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 2021-09-29
      • 2018-11-04
      相关资源
      最近更新 更多