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数组。
答案 0 :(得分:0)
您能否仅在状态中获得此数据,并且在您的传奇中解决了城市API请求后,只需执行一项操作即可启动标准的Redux周期。
async function a () {
await subscription_return();
code to be executed after subscription has got the data
}
subscription_return(){
this.http.getDataFromService().subscribe((response) => {});
}
呼叫城市传奇,呼叫api,用更新的城市开火,然后仅通过标准的redux action reducer流程进行状态更改
答案 1 :(得分:0)
为什么不只是将从服务器获取的数据保存到商店中。如果您已经有商店作为选项,为什么要在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。