我正在使用一个具有类别屏幕的应用程序,其中显示了该类别的相关帖子。我正在使用react-navigation在屏幕之间导航并处理深层链接。类别屏幕可以在应用程序内或通过深层链接访问。要通过深层链接访问类别屏幕,我正在使用类似myapp://category/:id
的东西。
如果该应用已经打开并且专注于类别屏幕,则深层链接将不执行任何操作。
我目前已使用componentDidUpdate
生命周期方法“修复”了它,以比较状态中存储的ID和navigation.getParam
中的ID。
componentDidUpdate = () => {
const { navigation } = this.props;
const { categoryID } = this.state;
const paramID = navigation.getParam('id',null);
if (paramID !== categoryID) {
this.setState({ categoryID: paramID },() => {
// fetch data
});
}
}
但是,这对我来说似乎是一个肮脏的解决方法。有更好的方法吗?也许使用推式而不是通过反应导航来打开所有深层链接?