如何在React中编写无状态和无渲染组件?

时间:2018-09-08 22:46:30

标签: javascript reactjs components web-component

我是新来做出反应的人,现在正在构建交通网络应用程序。我有一个地图(带有google maps api)组件,一个用户位置组件和公共交通组件。另外,我编写了一个父组件,该组件应管理所有三个组件的状态并调用要渲染的地图组件。

问题是我不确定我是否做对了。实际上,我确定我搞砸了应该在这里工作的方式。

这是我的userLocation组件

import React from 'react'

export class Userocation extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            userLatlng = {lat: '', lng: ''}
        };
        this.getUsersLocation = this.getUsersLocation.bind(this)
        this.parseUserLocation = this.parseUserLocation.bind(this)
    }

    parseUserLocation(position) {
        const lat = position.coords.latitude;
        const lng = position.coords.longitude;
        var userLocation = { lat: lat, lng: lng }

        this.props.updateUserLocation(userLocation)
    }

    getUsersLocation() {
        navigator.geolocation.getCurrentPosition(this.parseUserLocation)
    }

    render() {
        setInterval(this.getUsersLocation, 5000) // Not rendering anything..
    }
}

位置管理器父组件(我已删除了其中的一部分,以便您可以看到问题所在)-

import React from 'react'
import userLocation from './userLocation'
import busStationLocation from './busStaionLocation'

export class Locationmanager extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            userLocation: {lat: '', lng: ''},
            loadingUserLocation: true,
        }
    }

    updateUserLocation(newLocation) {
        this.setState({userLocation: newLocation})
    }

    render() {
        <userLocation /> //Rendering a component that doesn't present nothing..
        //calling the map and transport component...
    }
}

您看到问题了吗?我不知道如何组织我的组件。

0 个答案:

没有答案