ComponentWillMount warning

北慕城南 提交于 2019-12-01 04:47:58

问题


I am creating a layout with inside. I am getting to this scene from another. So at the beginning another layout is rendered. After i go to the second scene (with TextInput tag) i obtain warnings such as:

componentWillMount is deprecated and will be removed in the next major version. Use componentDidMount instead. As a temporary workaround, you can rename to UNSAFE_componentWillMount. Please update the following components: App, Container, Image, Text< TouchableOpacity, Transitioner, View.

This is very strange, because I am not using componentWillMount method, so i guess that it is implicitly called.

This is the code of the component with

 class MainTopBarAfterSearch extends Component {
constructor() {
    super();
    this.state = { text: " " };
}

render() {
    const { topBarContainer, imageStyle, textInputStyle } = styles;
    return (
        <View style={topBarContainer}>
            <TouchableOpacity onPress={() => Actions.menu()}>
                <Image
                    source={require("../../../resources/menuWhite.png")}
                />
            </TouchableOpacity>
            <TextInput
                style={textInputStyle}
                placeholder="Begin to search"
                value={this.state.text}
                onChangeText={text => this.setState({ text })}
            />
            <Image source={require("../../../resources/filter.png")} />
        </View>
    );
}
}

回答1:


Yes, because the componentWillMount and componentWillReceiveProps getting deprecated soon in React. I suggest you to use componentDidMount instead of componentWillMount.

But you will still get those yellow box warnings because react-native is still using those for the internal components like Image, TouchableOpacity and a lot of other components. We need to wait for a new update to get rid of those warnings. Don't worry, Happy coding.




回答2:


ComponentWillMount is deprecated in react from version 16. You should move all the code from the componentWillMount to the constructor or componentDidMount.

Please refer to below link for more explanation. https://reactjs.org/docs/react-component.html#componentwillmount




回答3:


I think, the ref of componentWillMount is in Component class implementation. not in the extend.




回答4:


It is because componentWillMount will get deprecated soon in the next major version.Even if you are not using it getting this warning is to prevent you from using as it is the part of lifecycle we commonly use.



来源:https://stackoverflow.com/questions/49152988/componentwillmount-warning

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!