如何一次执行一行代码,即使在重新渲染和导航时也不会再次执行

How to execute a line of code once and never again even on re-rendering and navigation

我是新手。我被困在一个点上。 仅当注释的代码行未被注释时才会加载下面的页面。 但随后它会影响代码的功能,因为每次页面呈现时,它都会执行。请让我知道这里出了什么问题,或者我应该采取什么方法来解决它。提前谢谢你。

 function DocumentTable() {
  const data = [{ id: "", name: "", code: "" }];
  const [documentData, setDocumentData] = useState(data);
  // window.localStorage.setItem("document", JSON.stringify(data));  //comment this line.
  let dataForDocumentTableRows = JSON.parse(
    window.localStorage.getItem("document")
  );
  const tableRows = dataForDocumentTableRows.map((info) => {
    return (
      <Tr>
        <Td>{info.id}</Td>
        <Td>{info.name}</Td>
        <Td>{info.code}</Td>
      </Tr>
    );
  });

  const addRows = (data) => {
    const totalDocuments = documentData.length;
    console.log(totalDocuments);
    data.id = totalDocuments;
    const updatedDocumentData = [...documentData];
    console.log(updatedDocumentData);

    updatedDocumentData.push(data);
    setDocumentData(updatedDocumentData);
    window.localStorage.setItem(
      "document",
      JSON.stringify(updatedDocumentData)
    );

    console.log(documentData);
  };

  return (
    <Box>
      <DocumentForm func={addRows} />
      <TableContainer mt={"10vh"}>
        <Box bg={"teal"} fontSize={"30"}>
          <center>Document List </center>
        </Box>
        <Table variant="striped" colorScheme="teal" size="lg">
          <Thead>
            <Tr>
              <Th>Document ID</Th>
              <Th>Document Name</Th>
              <Th>Document Code</Th>
            </Tr>
          </Thead>
          {dataForDocumentTableRows && <Tbody>{tableRows}</Tbody>}
        </Table>
      </TableContainer>
    </Box>
  );
}

export default DocumentTable;

你不能构建它,以便 setItem() 只有在它不存在时才会到达吗?换句话说:如果(不存在)你 se​​tItem(),否则你什么都不做?