Javascript Flow type错误地认为我在向渲染方法中的组件传递道具
考虑以下几点:Javascript Flow type错误地认为我在向渲染方法中的组件传递道具,javascript,reactjs,flowtype,Javascript,Reactjs,Flowtype,考虑以下几点: render(): ?React.Element<*> { if (this.state.error) { if (redirect) return <Redirect to={redirect} />; return <Page404 />; } ... } Flow给了我一个错误: 属性“to” 在React元素“Page404”的道具中找不到属性 为什么flow认为我正在将Page404 a传递给prop?如
render(): ?React.Element<*> {
if (this.state.error) {
if (redirect) return <Redirect to={redirect} />;
return <Page404 />;
}
...
}
Flow给了我一个错误:
属性“to”
在React元素“Page404”的道具中找不到属性
为什么flow认为我正在将Page404 a传递给prop?如何更正此问题?既然您正在返回?React.Element,流必须用满足所有可能返回值的某些类型参数替换*。在本例中,其中一个类型参数是Props——因此它必须找到一个可以放在那里的类型,该类型与Page404和Redirect都匹配。因为他们没有匹配的道具,Flow无法做到这一点
简单的解决方案是将返回类型更改为?React.Element。由于调用者很少关心他们拥有的特定元素,实际上只需要任何React元素,因此在本例中使用any不会失去任何安全性。@AndrewLi,是的,刚刚完成更新