【发布时间】:2016-06-13 00:44:36
【问题描述】:
我使用 ReactNative 和 Flux 并没有遵循如何在此处渲染另一个组件 UserStore.addChangeListener(function(){}); 而是 Form。所以,我有一个登录表单,如果登录成功 - 我需要呈现NewsFeed。我该怎么做?
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>
);
}
});
【问题讨论】:
标签: javascript react-native flux