я получил такую ошибку, когда я пытаюсь передать маршрутизатор к компоненту Логин:реагировать-маршрутизатор и контекстные типы
class Login extends React.Component {
onClick(){
Actions.login(this.context.router);
}
static contextTypes = {
router: React.PropTypes.func.isRequired
}
render(){
return (
<Card style={{
'maxWidth': '800px',
'margin': '30px auto',
'padding': '50px'
}}>
<CardText style={{
'textAlign': 'center'
}}>
To start chatting away, please log in with your Google account.
</CardText>
<RaisedButton style={{
display: 'block',
}} onClick={this.onClick.bind(this)}
label="Log in with Google" primary={true} />
</Card>
);
}
}
export default Login;
Тогда я пытаюсь передать его в действие login
, чтобы можно перенаправить на другой маршрут после регистрации. Действие Логин:
login(router){
return (dispatch) => {
let firebaseRef = new Firebase('https://front-react-stack.firebaseio.com');
firebaseRef.authWithOAuthPopup("google", (error, user) => {
if(error){
return;
}
dispatch(user);
router.push('/chat');
});
}
}
Но после входа в консоли есть ошибка: «Предупреждение: Ошибка Виды Контекст: Invalid контекст router
типа object
, подаваемого в Login
, ожидается function
Проверьте. метод рендеринга RouterContext
. "
Мне кажется, что я прошел func
. не object
типа, так что я понятия не имею, где эта ошибка происходят из ...
Вы попробовали console.log, чтобы узнать, является ли это функцией или нет? 'this' может и не быть тем, что, по вашему мнению, находится внутри onClick – hansn