0
我使用ReactNative和Flux,並沒有遵循如何渲染另一個組件UserStore.addChangeListener(function(){});
而不是Form
。所以,我有一個登錄表單,如果登錄成功 - 我需要呈現NewsFeed
。我如何做到這一點?在ReactNative中更新渲染的組件
import NewsFeed from './NewsFeed';
var Form = React.createClass({
componentWillMount: function() {
UserStore.addChangeListener(function(){});
},
logIn: function() {
fetch(
// ...
);
},
render: function() {
return (
<View>
<TouchableHighlight onPress={this.logIn}>
Log In
</TouchableHighlight>
</View>
);
}
});
export default Form;
UPD:
var Main = React.createClass({
getInitialState: function() {
return {
loggedIn: false
}
},
componentWillMount: function() {
UserStore.addChangeListener(function(){
this.setState({ loggedIn: true })
});
},
shouldComponentUpdate: function() {
return component = <NewsFeed />;
},
render: function() {
var component = this.state.loggedIn ? <NewsFeed /> : <AuthForm />;
return (
<View style={styles.container}>
{ component }
</View>
);
}
});
嗨!謝謝你的回答,但是'view'在狀態改變時不更新。 –
你能更新你的代碼來反映這些變化嗎? –
已更新代碼 –