我開始有反應過來母語,在我的項目,我到了一個地步,一切正常,但有這樣的警告:陣營本地的setState(...)既componentWillMount和componentDidMount
Warning: setState(...): Can only update a mounted or mounting component.
所以,我看了幾個QA,嘗試了幾個解決方案(從componentWillMount
和componentDidMount
更改setState()
的呼叫),但......警告總是在那裏。
下面是代碼的一部分:
REQUEST_URL = 'http://url/users.php';
(...)
module.exports = React.createClass({
getInitialState: function() {
return {
uid: null,
bid: null,
username: null,
}
},
componentDidMount: function() {
this.fetchData();
},
fetchData: function() {
fetch(REQUEST_URL)
.then((response) => response.json())
.then((json) => {
console.log('setState called');
this.setState({
uid: json.users[0].user_id,
bid: json.users[0].building_id,
username: json.users[0].username
});
})
.done();
},
render: function() {
if (!this.state.uid) { //user is not defined
console.log('not rendered');
return <Text>chargement...</Text>
}
// else
console.log('rendered');
var userId = this.state.uid;
var buildingId = this.state.bid;
var username = this.state.username;
return (
<View style={styles.content}>
<Text style={styles.label}>User Id</Text>
<Text>{userId}</Text>
<Text style={styles.label}>Building Id</Text>
<Text>{buildingId}</Text>
<Text style={styles.label}>Username</Text>
<Text>{username}</Text>
</View>
)
},
});
的users.php
返回一個JSON內容類型。
任何線索?
Thanx。
是否有可能在網絡調用返回之前卸載組件? –
這是一個在'immediateResetRouteStack()'中調用的路線,這可能是問題嗎? – Bruno