Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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 在react中渲染二维阵列的最佳方法?_Javascript_Reactjs_React Redux - Fatal编程技术网

Javascript 在react中渲染二维阵列的最佳方法?

Javascript 在react中渲染二维阵列的最佳方法?,javascript,reactjs,react-redux,Javascript,Reactjs,React Redux,我试图生成一个图形视图,但遇到了性能问题。我想更新视图,例如拖动起始节点,并将其反映在基础模型中。对模型的更新似乎会强制更新图中每个节点的状态。我是否只是切换到带有键的映射,并存储列和行以包装演示文稿的内容 <Graph> {graph.map((row: any, i: number) => { return ( <GraphRow key={i}> {row.map((node: any) => {

我试图生成一个图形视图,但遇到了性能问题。我想更新视图,例如拖动起始节点,并将其反映在基础模型中。对模型的更新似乎会强制更新图中每个节点的状态。我是否只是切换到带有键的映射,并存储列和行以包装演示文稿的内容

<Graph>
  {graph.map((row: any, i: number) => {
    return (
      <GraphRow key={i}>
        {row.map((node: any) => {
          return (
            <GraphNode
              className={Object.keys(node)
                .filter(key => node[key])
                .join(" ")}
              key={`${node.x} ${node.y}`}
              onClick={() => updateNode(toggleIsWall(node))}
              onDragStart={() => {
                setDraggedNode(node);
              }}
              onDragEnter={() => {
                handleDragEnter(node);
              }}
              onDragLeave={() => {
                handleDragLeave(node);
              }}
              onDragEnd={() => {
                handleDragEnd(node);
              }}
              draggable
            >
              <div>
                {node.x}, {node.y}
              </div>
            </GraphNode>
          );
        })}
      </GraphRow>
    );
  })}
</Graph>

{graph.map((行:any,i:number)=>{
返回(
{row.map((节点:any)=>{
返回(
节点[键])
.join(“”)
key={`${node.x}${node.y}}
onClick={()=>updateNode(toggleIsWall(节点))}
onDragStart={()=>{
SetDragedNode(节点);
}}
onDragEnter={()=>{
handleDragEnter(节点);
}}
onDragLeave={()=>{
handleDragLeave(节点);
}}
onDragEnd={()=>{
手柄(节点);
}}
拖动
>
{node.x},{node.y}
);
})}
);
})}

谢谢你的帮助。我实现了自己的
shouldComponentUpdate
,这很有帮助,但还不够。我的方法的基本问题是试图用div表示节点。如此数量的div表现糟糕。我改为使用
来表示每个节点。据我所知,如果没有达到我需要的性能,下一步就是使用画布。希望这对别人有帮助。干杯

谢谢你的帮助。我实现了自己的
shouldComponentUpdate
,这很有帮助,但还不够。我的方法的基本问题是试图用div表示节点。如此数量的div表现糟糕。我改为使用
来表示每个节点。据我所知,如果没有达到我需要的性能,下一步就是使用画布。希望这对别人有帮助。干杯

看起来您可能会从使用中受益看起来您可能会从使用中受益