【问题标题】:React Native: Re-render component in time intervalReact Native:在时间间隔内重新渲染组件
【发布时间】:2018-12-02 14:41:53
【问题描述】:

我的render() 函数中有一个组件,它返回要在视图上显示的元素列表。该组件(父组件)指的是一个子组件,该子组件具有对 API 的 http 请求。此请求负责返回元素列表及其数据。基本上从数据库返回的数据是应用程序的其他用户及其位置。一切正常。

问题是当数据库中的数据发生变化时,我希望能够重新渲染组件,因此,每当它发生变化时,一个用户将知道其他用户的位置。

当检测到数据库中的某些更改时,我坚持使用setInterval 的方法来继续向数据库发出请求并更新(重新渲染)render() 函数中的组件,但我有一些问题。这是我所拥有的:

render(){

    return(

        <View>
            <Component_to_re_render/>
        </View>

    );

}

我想知道是否有办法做类似...

render(){

    return(

        <View>
            {this.re_render_component()}
        </View>

    );

}

re_render_component(){
    "This function would make the component be re-rendered  with the new 
     data received from the API in a period of time."
}

有人可以帮我完成这项工作吗?它不需要以我提议的确切方式完成。

谢谢!

【问题讨论】:

    标签: android react-native httprequest


    【解决方案1】:

    如果您将响应保存在组件状态中并在组件中呈现状态,它将在发生数据更改时自动重新呈现。不需要有间隔(除非你需要在一个间隔中请求)。

    类似这样的:

    class MyComponent extends React.Component {
    
        state = {text: ''}
    
        componentDidMount(){
            someKindOfHttpRequest().then(response => this.setState({text: response}))
        }
    
        render() {
          return <Text>{this.state.text}</Text>
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 2021-10-28
      • 2021-01-02
      • 2018-05-12
      • 2018-12-16
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多