[英]React Router Redirect state is undefined when used in Protected Route
[英]State is undefined when used in react router link inside useMemo hook
我正在使用 react router 导航到另一个页面,并在 useMemo 中使用这个将状态传递到该页面
const columns = React.useMemo(
() => [
{
Header: "Actions",
id: "actions",
Cell: (tableProps) => {
return (
<>
<Link
to={{
pathname: "list-table/list-table-edit",
state: { selectedRow },
}}
>
<span
style={{
cursor: "pointer",
color: "grey",
textDecoration: "underline",
}}
onClick={(event) => {
setSelectedID(tableProps.row.original.asset_ID);
}}
>
<Tooltip title="Edit Row">
<EditButton aria-label="edit">
<CreateIcon fontSize="small" />
</EditButton>
</Tooltip>
</span>
</Link>
</>
);
},
},
...MakeTableColumns,
],
[selectedRow]
);
我的状态是这样声明的
const [selectedID, setSelectedID] = useState();
const selectedRow = oriData.find((row) => row.asset_ID === selectedID);
当用户单击Edit
,它会将行 ID 设置为selectedID
并且selectedRow
查找行值并传递到list-table-edit
页面。 但是,当我从list-table-edit
控制台props.location.state
时,它显示undefined
。 当我在useMemo
之外取出<Link> ..
并给出状态 ID 时,它工作正常,我认为useMemo
。 如果有人可以提供帮助,我将不胜感激,谢谢
更新
现在我从state: { selectedRow }
更改为state: { tableProps.row.original }
并传递到另一个页面,它无需传递状态即可工作。 我可以通过调用tableProps.row.original
获得选定的行值。
<Link to={{ pathname: '/list-table/list-table-edit', state: { record: selectedRow} }}>My route</Link>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.