Tôi biết đã có một câu hỏi tương tự nhưng không có mã được chia sẻ trong đó.phản ứng có nguồn gốc this.setState không hoạt động
Dưới navbarChanged()
> nếu điều kiện, tôi đang thực hiện this.setState
. Đây là loại HomeTab
nhưng setState
dường như không hoạt động.
Bất kỳ manh mối/con trỏ nào?
class HomeTab extends React.Component {
constructor() {
super()
this.setState({
isNavBarHidden: false
});
}
updatePosition(lastPosition) {
}
navbarChanged() {
console.log("received navbar changed event", AppStore.navbarVisible());
if (AppStore.navbarVisible()) {
StatusBarIOS.setHidden(false)
this.setState({ isNavBarHidden: false})
// this.state.isNavbarHidden is still true here
this.render();
}
else {
StatusBarIOS.setHidden(true);
this.setState({ isNavBarHidden: true});
this.render();
}
}
componentDidMount() {
AppStore.addNavbarChangeListener(this.navbarChanged.bind(this));
}
componentWillMount() {
StatusBarIOS.setHidden(false)
this.setState({ isNavBarHidden: false });
}
}
Và đây là render() mã của tôi:
render() {
return (
<NavigatorIOS style={styles.container}
navigationBarHidden={this.state.isNavBarHidden}
ref="navigator"
initialRoute={{
title: 'Foo',
component: HomeScreen,
passProps: { parent: this }
}}
/>
)
}
Cảm ơn bạn rất nhiều vì câu trả lời của bạn. 'setState' là câu trả lời không đồng bộ câu hỏi này. Tôi đã cập nhật mã của tôi với phương thức render() của tôi. Tôi sẽ loại bỏ render(); những gì bạn đề xuất có ý nghĩa. Tôi vẫn còn bối rối mặc dù tại sao thanh điều hướng của tôi không hiển thị lại (nhưng thanh tiêu đề là). – Abdo
WOW cảm ơn - Tôi không có ý tưởng thậm chí đọc trên và trên các tài liệu setState là không đồng bộ - TỪ TỪ CNTT nhiều tuts trực tuyến nói rằng giao diện người dùng sẽ làm cho sau khi gọi này - nó không ngay lập tức và câu trả lời của bạn đã giúp tôi ồ ạt. Cảm ơn – landed