小编Edg*_*ang的帖子

在React-Native中使用AsyncStorage更新状态的正确方法是什么?

我正在尝试向服务器发出GET请求以检索JSON形式的产品列表。然后,我想将数据放入AsyncStorage,以便可以在视图中显示产品。正确的方法是什么?

我研究了什么:

https://facebook.github.io/react-native/docs/asyncstorage.html上,在示例中,他们解释了如何从AsyncStorage检索值,而不是设置并同时检索它

是)我有的:

componentDidMount () {
    this.fetchProducts()
    this._loadInitialState().done();
}

_loadInitialState = async () => {
    try {
        var value = await AsyncStorage.getItem('products')
        if (value != null) {
            this.setState({products: value});
        }
    } catch (error) {
        console.log("error setting product list");
    }
}

fetchProducts() {
    fetch("http://localhost:3000/products",{
      method: "GET",
      headers: {
        'Content-Type': 'application/json'
      },
    })
    .then((response) => (response.json()))
    .then((data) => setProductList(data)); 

}

setProductList(json_data) {
    Async.setItem('products': json_data);
}

render() {
    console.log(this.state.products) 
    //render view
}
Run Code Online (Sandbox Code Playgroud)

-> this.state.products为null,我肯定知道服务器通过curl返回了响应。我是本机反应的新手,所以也许我的想法不对了。有人可以解释执行此操作的正确方法还是建议其他方法?

我所知道的 异步存储是一个键值存储,应用可以在其中放置其数据。可以将这些数据从异步存储放入对象的状态,并且视图将相应地更新

react-native asyncstorage

1
推荐指数
1
解决办法
4160
查看次数

标签 统计

asyncstorage ×1

react-native ×1