为什么此代码未调用componentDidUpdate()?

时间:2020-09-14 23:53:03

标签: reactjs react-native

代码

const Index = {
  screen: IndexScreen,
  params: { category: null },
};

const IndexStack = createStackNavigator(
  {
    Index,
  },
  {
    initialRouteName: 'Index',
    navigationOptions: {
    ...
    },
  },
);
<TouchableOpacity
  onPress={() => this.props.navigation.navigate('Index', { category: 1})}
>
  <Text>Navigating to Index</Text>
</TouchableOpacity>

Product.js

async componentDidUpdate(prevProps) {
  console.log(prevProps.navigation.state.params);
}

问题

从其他组件导航到索引时,它会传递param:category。

索引应该接收它,但是console.log()中的componentDidUpdate()不会返回任何内容。

1 个答案:

答案 0 :(得分:0)

对于您而言,您应该在componentDidMount中获得导航参数 如您在此处看到的,componentDidUpdate在渲染后 被触发,因此在您首次启动此组件时将不起作用。