javascript - 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 数组。
解决方案
为什么您不只是将您从服务器获取的数据保存到您的商店中。如果您已经有一个 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。
推荐阅读
- sql - 如何选择最小行集以覆盖 SQL 中每列的所有可能值?
- vue.js - 为什么在我的方法中,仅在将第二个数字放入输入值之后才计算方法
- shiny - 我可以从闪亮的模块中调用函数(不是模块)吗?我可以将模块反应值作为函数的参数传递吗
- c++ - 该程序应该创建一个带有结果的输出文件,但文件中没有任何内容
- php - 通过 url 将整数传递给 php $_GET
- actions-on-google - 谷歌行动。报告状态更改时不更新 UI
- python - 这可以转换为列表理解吗?
- reactjs - 如何处理图像的proptypes?
- c# - 如何使用 CutePdf writer 将文档转换为 PDF?
- c - 代码块中的警告,“操作可能未定义”