所以我有一个标题栏,当我使用 stackNavigation 打开个人资料屏幕时会隐藏它
配置文件屏幕:
export default class ProfileScreen extends React.Component {
constructor(props) {
super(props);
props.screenProps.updateHeader();
}
// Code goes on
//..........
//................
//...........................
}
这从父类调用 updateHeader 然后调用函数
主要(父类):
export default class Main extends React.Component {
constructor(props){
super(props);
this.state = {
showHeader: true
};
}
updateState = () => {
this.setState({
showHeader: !this.state.showHeader
});
}
render() {
return (
<View style={styles.container}>
{renderIf(this.state.showHeader,
<Header />
)}
<UserStack screenProps={{ updateHeader: this.updateState }} />
</View>
);
}
}
它有效,但有点慢。
当我导出项目时它会更好地工作吗?
我也收到了这个警告:
警告:在现有状态转换期间无法更新(例如在render
或其他组件的构造函数内)。渲染方法应该是 props 和 state 的纯函数;构造函数副作用是一种反模式,但可以移至componentWillMount
.
我应该怎么做才能解决这个问题?