【发布时间】:2020-09-02 18:59:28
【问题描述】:
我在一个包含 React Router (v6) 的 react 项目中使用 Typescript。
React Router 从 useLocation() 钩子返回一个位置对象
const location = useLocation()
它有一个名为“state”的属性。 State 是一个可以传递给任何 url 并且可以具有任何你想要的属性的对象。它只是有一种“对象”类型,因为用户可以在状态上设置任意数量的属性。
当我访问一个可能属于或不属于该州的财产时,麻烦就来了。我的 JS(非打字稿)代码有这个...
if(location.state && location.state.modals === true){...do something}
但是表达式的第二部分给了我一个错误... 属性'modals'在'object'类型上不存在
现在,我知道通用对象(它是状态的类型,由库作者而不是我设置)没有名为 .modals 的属性,但我不能对此做很多事情,它实际上可能具有任何属性,具体取决于我们当前所在应用程序的哪个页面以及当时状态中包含的内容。
我对如何修复它有点茫然。
【问题讨论】:
标签: javascript reactjs typescript react-router