为了账号安全,请及时绑定邮箱和手机立即绑定

如何在本机反应中正确管理地图初始状态?

如何在本机反应中正确管理地图初始状态?

素胚勾勒不出你 2022-06-09 19:41:47
我是 JS/React-native 的新手,我对如何正确管理地图的初始状态有点困惑。我有以下组件:import React from 'react';import { StyleSheet, Text, View, Dimensions} from 'react-native';import Colors from '../constants/Colors'import MapView from 'react-native-maps'const { width, height } = Dimensions.get('window');const ASPECT_RATIO = width / height;const LATITUDE = 53.2274476;const LONGITUDE = -0.5474525;const LATITUDE_DELTA = 0.0922;const LONGITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO;function myMapsComponent({navigation}) {  constructor(props) {    super(props);    this.state = {      isLoading: true,      location: null,      errorMessage: null,      region: {        latitude: LATITUDE,        longitude: LONGITUDE,        latitudeDelta: LATITUDE_DELTA,        longitudeDelta: LONGITUDE_DELTA,      },    }  }  return (      <MapView style={{flex: 1}} Initialregion={this.state.region}/>  );}const styles = StyleSheet.create({});export default myMapsComponent;此代码产生错误expected ";" (16:21),这是构造函数开始的行。我猜问题实际上是我不能使用构造函数,除非它在类而不是函数中?有人可以在这里指出我正确的方向吗?
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

你是对的,你不能在函数组件中使用构造函数。


你能做的就是选择一个或另一个。一个类组件看起来像这样:


class MyMapsComponent extends React.Component {


  constructor(props) {

    super(props);

    this.state = {

      isLoading: true,

      ...

    }

  }


  render() {

    return (

        <MapView style={{flex: 1}} Initialregion={this.state.region}/>

    );

  }

}

还有一个像这样的功能组件:


function myMapsComponent({navigation}) {

  const [isLoading, setLoading] = useState(false);

  const [region, setRegion] = useState({longitude: LONGITUDE, ...});

  ...



  return (

      <MapView style={{flex: 1}} Initialregion={region}/>

  );


}

您可以在此处了解组件(函数或类),并在此处了解关于和其他useState钩子


查看完整回答
反对 回复 2022-06-09
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信