react-native - Redux 获取返回空的有效负载数组
问题描述
我正在尝试从 API 获取数据(现在,我只有一个用于测试的数组)并将其显示在我的屏幕上。
我创建一个动作文件:
import {
GET_TENANT_DATA
} from './Types';
export const getTenants = ({ userID }) => {
return (dispatch) => {
const test = ['Saab', 'Volvo', 'BMW']; // Later it will be changed for axios fetch
dispatch({
type: GET_TENANT_DATA,
payload: test
});
};
};
我的减速机:
import {
GET_TENANT_DATA
} from '../actions/Types';
const INITIAL_STATE = {
error: false,
data: []
};
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case GET_TENANT_DATA:
return { ...state, error: false, tenants: action.payload };
default:
return state;
}
};
然后,在我的屏幕中,我通过 console.log 对其进行测试:
...
componentDidMount() {
AsyncStorage.getItem('userID')
.then((value) => {
const userId = JSON.parse(value);
this.props.getTenants(userId);
});
}
render() {
console.log(this.props.data);
...
但是,日志显示一个空数组而不是 ['Saab', 'Volvo', 'BMW']。有谁知道为什么会这样?
谢谢
解决方案
您不是data
在减速器中设置属性,而是设置tenants
属性并data
保持最初设置的状态 - 为空。
像这样改变你的减速器:
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case GET_TENANT_DATA:
return { ...state, error: false, data: action.payload };
default:
return state;
}
};
推荐阅读
- r - 我如何在另一个选举半圆中将几年与 plotly 或 ggplot 进行比较?
- flutter - Override gives me an error I cant find the function
- wordpress - 即使在使用更好的搜索和替换插件后,我在解决 Wordpress 中的混合内容时仍面临错误?{WordPress}
- html - 角度模板解析错误,无法绑定属性
- sql - 理解: floor((row_number() over (ORDER BY CHDR.UNIQUE_NUMBER ASC)-1)/100)
- string - Ada 中的多行字符串文字
- python - Pandas 如何使用 dt 按月和年分组
- html - 在 CSS 动画之后播放 HTML 视频
- python - 如何平均/集成 2 个或更多数据帧的目标
- laravel-5 - 如何在表格中插入多个图像?