首页 > 解决方案 > Saga 为常数

问题描述

const SYSTEM_DATA = {
    GENDER: [
        { value: 'male', label: 'Male' },
        { value: 'female', label: 'Female' },
    ],
    DAYS: [
        { value: 1, label: 'Monday' },
        { value: 2, label: 'Tuesday' },
        { value: 3, label: 'Wednesday' },
        { value: 4, label: 'Thursday' },
        { value: 5, label: 'Friday' },
        { value: 6, label: 'Saturday' },
        { value: 0, label: 'Sunday' },
    ],
    CITY: [

    ]
}

export default SYSTEM_DATA

我有这种数据文件来保持常量,但每次打开相关页面时我都需要从服务器获取城市。如何在此处直接使用我的 redux saga 请求来填充 CITY 数组。

标签: javascriptreactjsapi

解决方案


为什么您不只是将您从服务器获取的数据保存到您的商店中。如果您已经有一个 Store 作为选项,为什么要向 const 添加一些东西。

在更高级别的组件或组件层次结构中调用 store.dispatch(getCities()) 。

因此,在您的高级组件中,只需发送一个动作并将所有城市放入您的商店“cities[]”中。

export function getAllCities(){
return fetch(YourUrl)
    .then(response=>response.json());}

和传奇

export function* fetchCities(){

const cities=yield getAllCities();
yield put(putCitiesToStore(cities));}

另一方面,您可以从此“getAllCities()”获取城市并将它们添加到 const。


推荐阅读