React-nativeのthis.setState();
を機能させることができません。
onUpdate
メソッドを実行すると、正しいJSONオブジェクトが返されることがわかります。
問題は、setState
関数が呼び出されても何も起こらず、メソッドが失敗することです。その下でコードが実行されることはありません。また、setState
関数の後にコンポーネントを再レンダリングしません。
以下に私のコンポーネントコードを示します。
var App = React.createClass({
getInitialState: function() {
return {
view: Login,
menu: false,
}
},
componentDidMount: function() {
var self = this;
},
onUpdate: function(val){
// val is verified as an object here when I log to console
this.setState(val);
// nothing runs here. The above line errors out the function
},
render: function () {
if(this.state.view == 'Home'){
this.refs.sideMenu.frontView = Home;
return (
<View style={styles.container} >
{sideMenu}
</View>
);
}
return (
<View style={styles.container} >
<Login onUpdate={this.onUpdate} />
</View>
);
}
});
LoginコンポーネントのonUpdateメソッドは、おそらくシリアル化できないオブジェクトで呼び出されます。たとえば、関数や循環参照を含めることができます。
OnUpdateメソッドで、val引数から関心のあるものを選択し、それを状態に挿入する必要があります。このようなもの:
this.setState({
userName: val.userName,
userId: val.userId
});
または、onUpdateに送信されるオブジェクトに含まれているものは何でも。