刚接触react native 不久 对其生命周期不太熟悉,今天碰到一个需求,一个页面筛选数据后,重新进入的时候,要选择筛选前的数据。
预计结果
实际结果
碰到难点 筛选数据是从后端拉取保存的,下次进入这个页面的时候,进入的生命周期只有更新,不能在这里重新获取数据,要不然会进入死循环,而只加载一次的生命周期方法,重新进入页面的时候就不会执行。
解决方案 使用 componentWillReceiveProps方法,这个方法只有在其它页面进入这个页面时候,传递了数据,才会执行,所以在这里获取新的数据时候,就不会陷入死循环,而每次进入这个页面的时候都会执行一次方法,所以可以解决我的问题。
第一个页面传递一个表示位给后面
e.navigation.navigate('JudgeBusinessOrProduct',{
content:'clear',
})
第二个页面 在方法里面执行我封装清除筛选,重新获取数据的方法
componentWillReceiveProps(nextProps, nextContext) {
this.clear(1);
console.log("weichongbin111","componentWillReceiveProps");
}