以此为例:
假设这些功能都绑定了所有内容
HalloweenCandyComponent.js
fetchHalloweenCandy() {
this.props.getHalloweenCandy()
}
actions.js
getHalloweenCandy(){
return (dispatch) => {
const request = axios.get('http://halloweencandy.com/all');
request.then(function(response){
console.log(response.data);
return disatch({
type: GET_ALL_HALLOWEEN_CANDY,
payload: response.data
})
})
}
}
此时,当我在console.log(response.data)时,我将返回一个对象数组,我应该这样做。意思是,一切都按预期工作。
接下来,我想要更新 HalloweenCandyComponent 的状态,并用万圣节糖果填充它。因此,我们希望将此信息发送给我们的Reducer。
减速器/ halloweencandy.js
export default function(state = [], action) {
switch(action.type){
case GET_ALL_HALLOWEEN_CANDY:
console.log(action.payload);
return [...state,
Object.assign({}, action.payload)
];
default:
return state;
}
}
这是我被扔的地方。 console.log(action.payload)
不会返回任何内容。它只是空的。
我似乎无法弄清楚的另一件事是......将价值传递给我的行为。例如......
fetchHalloweenCandyByQuery(search){
this.props.getHalloweenCandyByQuery(search);
}
然后在我的行动中...它总是以未定义的方式出现......直到很久以后......(我通过执行setTimeOut函数来测试...)但重点是我不想要处理这个问题。我正在使用thunk,我希望这不是问题所在,但我不能这样做,所以当响应准备就绪时,它可以执行,而不是给我未定义的值?!有点像回调?很抱歉,如果这是一个愚蠢的问题,但我尝试查看react-redux-async库和these,但我迷路了。
答案 0 :(得分:0)
您想知道这个问题是什么。 response.data
返回一个对象数组,因此,我无法使用Object.assign()