gpt4 book ai didi

react-native - ComponentDidMount 触发两次

转载 作者:行者123 更新时间:2023-12-02 01:01:47 28 4
gpt4 key购买 nike

我在两条路线之间导航时遇到问题。我的场景如下:

我有 2 条路线:Route1Route2 - 都是彼此的 sibling 。

假设我在 Route1,我可以通过传递的参数(始终)从那里导航到 Route2。当以下列方式快速导航时,我调查了错误行为:

Route1 -> Route2 (param: 1) -> Route 1 -> Route 2 (param: 2)

我已将控制台日志放在 Route2 componentDidMount 中以查看以下输出:

const { navigation } = this.props;
console.log(navigation.state.params.param);

令我惊讶的是,如果我快速导航,上述场景的输出将是:

1 
1
2

虽然预期的行为是:

1
2

知道发生了什么吗?

最佳答案

当你从 Route2 导航到 Route1 时,它是从右边进来还是从左边进来?它可能被挂载了两次,因为这样 react 导航很有趣 :P

您也可能按按钮太快了。在这种情况下,在第一次点击后将按钮禁用几百毫秒。

class Button extends React.Component {
onPress = () => {
if (this.props.disabled) return;
if (this.canPress) {
this.canPress = false;
this.props.onPress();
setTimeout(() => { this.canPress = true; }, this.props.pressTimeout || 500);
}
}
....

关于react-native - ComponentDidMount 触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50009325/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com