reactjs - 对 this.props.history.push 使用流失败的反应类型检查
问题描述
我正在使用 React 中的流进行类型检查。我在以下情况下遇到错误,如何处理 this.props.history.push('/home') 如何在道具中定义它?我已经尝试过如下但它不起作用,
type Prop = { onLoginSuccess: function, setContextDetails: function, callErrorLogger: function, history:string, push:string };
type State = { username: string, password: string, loginsuccess: bool, isLoading: bool };
class Login extends React.Component<Prop, State> {
// here I have some code
this.props.history.push('/home') ;
}
解决方案
我清理了您的一些代码和类型,以便更正确地对抗流语法。但这应该有效。
您基本上history
以与普通对象相同的方式定义您的类型,并且可以使用我在下面使用的箭头函数语法push
来声明您的函数,或者更严格地声明您的函数。Function
type Prop = {
onLoginSuccess: Function,
setContextDetails: Function,
callErrorLogger: Function,
history: {
push: (string) => void,
},
};
type State = {
username: string,
password: string,
loginsuccess: boolean,
isLoading: boolean,
};
class Login extends React.Component<Prop, State> {
// here I have some code
onClick() {
this.props.history.push('/home');
}
}
我还建议您将来标记您的帖子,flowtype
以便获得更多帮助。