我在里面创建一个布局。我从另一个到达这个场景。所以在开始时会呈现另一个布局。在我转到第二个场景(使用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>
);
}
}
答案 0 :(得分:3)
是的,因为在{React}中很快就会弃用componentWillMount
和componentWillReceiveProps
。我建议您使用componentDidMount
代替componentWillMount
。
但是您仍然会收到黄色方框警告,因为react-native
仍在使用Image
,TouchableOpacity
等内部组件以及许多其他组件。我们需要等待新的更新来摆脱这些警告。别担心,快乐编码。
答案 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
对我有用:)