当尝试使用setState
从useState
钩子传递<Link>
时,react-router出现问题。我在做什么错了?
我创建了一个简单的项目来显示问题: dashboard.blade.php
打开控制台,然后单击链接以查看错误。
const [state, setState] = useState(0);
return (
<div className="App">
<Link to={{ pathname: "/test", state: { state, setState } }}>test</Link>
<Switch>
<Route path="/test" component={Test} />
</Switch>
</div>
);
}
我收到此错误,无法帮助我解决问题:
“未捕获的DOMException:无法在'History'上执行'pushState':无法克隆function(){[本机代码]}。“
答案 0 :(得分:2)
如果您需要setState
组件中的<Test />
函数,请通过路由传递它:
const [state, setState] = useState(0);
return (
<div className="App">
<Link to={{ pathname: '/test' }}>test</Link>
<Switch>
<Route
path="/test"
render={props => (
<Test {...props} state={state} setState={setState} />
)}
/>
</Switch>
</div>
);