ReactJS一次初始化

框架

我有一个组件说HomePage,我要在其中调用getCurrentLocation以使用GPS获取位置。该值将用于从下拉菜单中选择一个值。然后,用户可以使用下拉菜单更改值。

当我离开此页面然后返回使用

const appHistory = createHashHistory();
appHistory.goBack();

构造函数和componentDidMount再次执行。所以用户选择的值丢失了,我又得到了默认值。

那么我应该在哪里放置初始化代码?我来自Ionic,那里有ionViewDidLoad之类的东西,仅在页面首次加载时才执行。是否有与此等效的React。

下面是我的代码

export class HomePage extends React.Component {

constructor(props){
super(props);
state = {
        currentLocationCoordinates:[],
    };
this.getCurrentLocation = this.getCurrentLocation.bind(this);
}

getCurrentLocation(){
        navigator.geolocation.getCurrentPosition((success)=>{
            console.log("Current Location: "+success.coords);
            this.setState({
                currentLocationCoordinates:[success.coords.latitude,success.coords.longitude],
                userLocationCoordinates:[success.coords.latitude,success.coords.longitude]
            });
        });
    }
}
componentDidMount(){
        this.getCurrentLocation();
}


}
ᴘᴀɴᴀʏɪᴏᴛɪs

我会避免componentDidMount为此使用使您的组件尽可能具有弹性,以便重新渲染和重新安装。

从声音上看,您位于一个应用程序级别状态容器之后,该容器将保持您的应用程序状态,而不管是否安装了组件。

尽管确实存在其他状态容器,但大多数React社区都依赖Redux我建议您看看Redux,并在Redux商店中使用它来保存这些位置详细信息。这样,无论它们是否重新渲染,它们都将始终在您的组件上作为prop进行访问。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫一次初始化多列

SecureRandom:是否需要一次或每次初始化?

随机数仅初始化一次

变量用动态值初始化一次

一次初始化4个CGFloat

如何一次初始化几个结构变量?

一次初始化多个对象?

Perl Hashref一次初始化并分配

Ada,一次初始化数组

在php中仅初始化一次变量

从文件初始化的静态变量仅初始化一次

如何初始化stanfordNLP管道一次并使用多次而无需再次初始化?

如何只初始化 nouislider 一次?noUISlider — `未捕获的错误:滑块已经初始化`

如何使用角度选择器 2 次但组件初始化一次?

初始化另一个bean的bean值(一次)

python:总有一次只能初始化一个变量吗?

线程安全地初始化一个指针一次

链接执行两次-第一次未初始化变量,第二次初始化

Apache Flink RichAsyncFunction open()是否在初始化或每次函数调用时被调用一次?

如何只在构造函数中初始化一次变量?

一次为所有单元测试初始化私有字段

如何一次为Jest初始化Feathers实例

如何保证每个Controller都能看到模型并且只初始化一次?

如何获得正确的框架,并且只在UITableViewCell中初始化一次?

一次初始化nuxt插件,而不是服务器+客户端

在JAVA一次初始化多个数字字段与某些值开始

Django-Background-Tasks:在午夜初始化Task,并在每个午夜重复一次

有没有办法只初始化一次阵列?

Python仅初始化一次变量,并在单独的文件中使用