Here is an excerpt which should show my problem. In my project I do something with the grid and now I want to reset it, but I dont know how it works because if I change the grid variable, the .map() function doesnt re render. I hope you understand my problem and you can help me.
That is my code:
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>
);
}
Thanks a lot!
Advertisement
Answer
You should use useState hook for that.
import React, { useState } from 'react';
export default function App() {
// App code
const [grid, setGrid] = useState(getInitialGrid());
// more App code
then if you want to assign a new value to the grid and cause a rerender you do it like this (inside your App component):
setGrid(yourNewGrid);