React native React Native this.setState()不起作用

React native React Native this.setState()不起作用,react-native,setstate,React Native,Setstate,我无法获取react native的this.setState()开始工作 当我运行onUpdate方法时,我可以看到返回的是正确的JSON对象 问题在于调用setState函数时,什么也不发生,方法失败。下面不再执行代码。它也不会在setState功能后重新渲染组件 下面是我的组件代码: var-App=React.createClass({ getInitialState:函数(){ 返回{ 查看:登录, 菜单:错, } }, componentDidMount:function(){ va

我无法获取react native的
this.setState()开始工作

当我运行
onUpdate
方法时,我可以看到返回的是正确的JSON对象

问题在于调用
setState
函数时,什么也不发生,方法失败。下面不再执行代码。它也不会在
setState
功能后重新渲染组件

下面是我的组件代码:

var-App=React.createClass({
getInitialState:函数(){
返回{
查看:登录,
菜单:错,
}
},
componentDidMount:function(){
var self=这个;
},
onUpdate:函数(val){
//当我登录到控制台时,val在这里被验证为一个对象
这个.setState(val);
//此处不运行任何内容。上面的行错误导致函数失效
},
渲染:函数(){
如果(this.state.view=='Home'){
this.refs.sideMenu.frontView=Home;
返回(
{侧菜单}
);
}
返回(
);
}
});

您的Login components onUpdate方法可能是使用无法序列化的对象调用的。例如,它可能包含函数,也可能包含循环引用

在onUpdate方法中,应该从val参数中选择感兴趣的内容,并将其插入状态。大概是这样的:

this.setState({
userName: val.userName,
userId: val.userId
});

或者发送到onUpdate的对象中包含的任何内容

我能够通过使用Flux架构来纠正这个问题。我使用了这里的McFly包:

我想我们还需要看看
Login
的功能。您声称
val
是一个对象,但如果它不起作用,就会有可疑之处……:)当你调用
setState
时,知道你遇到了什么错误也会很有帮助。你说的“无法序列化的对象”是什么意思?