javascript - React如何在变量更改时重新渲染地图功能?
问题描述
这是一段应该显示我的问题的摘录。在我的项目中,我对网格做了一些事情,现在我想重置它,但我不知道它是如何工作的,因为如果我更改网格变量,.map() 函数不会重新渲染。我希望你能理解我的问题,你可以帮助我。
那是我的代码:
export default function App() {
const getInitialGrid = () => {
const grid = [];
for (let row = 0; row < 20; row++) {
const currentRow = [];
for (let col = 0; col < 50; col++) {
currentRow.push([]);
}
grid.push(currentRow);
}
return grid;
};
const grid = getInitialGrid();
return (
<div className="App">
{grid.map(function (row, rowIdx) {
return (
<div className="grid-row" key={rowIdx}>
{row.map(function (node, colIdx) {
return <div className="node">hi</div>;
})}
</div>
);
})}
</div>
);
}
非常感谢!
解决方案
您应该为此使用useState挂钩。
import React, { useState } from 'react';
export default function App() {
// App code
const [grid, setGrid] = useState(getInitialGrid());
// more App code
然后,如果您想为网格分配一个新值并导致重新渲染,您可以这样做(在您的 App 组件中):
setGrid(yourNewGrid);
推荐阅读
- r - 在第一个循环-R 处固定一个值
- spring - 如何在 Spring Data MongoRepository 中使用事务?
- python - Django/Python - 将文件从命令输出保存到 ImageField
- javascript - 由于 npm 未导航到不正确的目录,无法运行服务器。并找到 package.jason
- python - 将构建的字典类型转换为 TypedDict
- netsuite - 从 V1 用户事件调用 V2 模块
- c++ - 将字符串转换为类
- typescript - Jest 遇到了 NUXT 打字稿的意外标记
- beautifulsoup - 没有名为 'bs4' 的模块,已为 pip3 安装但无法导入
- python - 访问嵌套字典中“基础”键的所有值?