ComponentWillMount警告

时间:2018-03-07 13:20:20

标签: reactjs react-native react-native-router-flux

我在里面创建一个布局。我从另一个到达这个场景。所以在开始时会呈现另一个布局。在我转到第二个场景(使用TextInput标签)后,我获得了警告,例如:

  

不推荐使用componentWillMount,将在下一次删除   主要版本。请改用componentDidMount。暂时的   解决方法是,您可以重命名为UNSAFE_componentWillMount。请更新   以下组件:App,Container,Image,Text<   TouchableOpacity,Transitioner,View。

这很奇怪,因为我没有使用componentWillMount方法,所以我猜它是隐式调用的。

这是

组件的代码
 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>
    );
}
}

5 个答案:

答案 0 :(得分:3)

是的,因为在{React}中很快就会弃用componentWillMountcomponentWillReceiveProps。我建议您使用componentDidMount代替componentWillMount

但是您仍然会收到黄色方框警告,因为react-native仍在使用ImageTouchableOpacity等内部组件以及许多其他组件。我们需要等待新的更新来摆脱这些警告。别担心,快乐编码。

答案 1 :(得分:0)

我认为,componentWillMount的引用是在Component类实现中。不是在延伸。

答案 2 :(得分:0)

这是因为 componentWillMount 很快就会在下一个主要版本中被弃用。即使您没有使用它,也会发出此警告是为了阻止您使用它,因为它是我们常用的生命周期的一部分

答案 3 :(得分:0)

从版本16开始不推荐使用componentWillMount。您应该将所有代码从componentWillMount移到构造函数或componentDidMount。

请参阅以下链接以获取更多说明。 https://reactjs.org/docs/react-component.html#componentwillmount

答案 4 :(得分:0)

componentWillMount 可以通过构造函数初始化或 componentDidMount

轻松修复

对我有用:)