能异步获取到数据,console.log在页面上也显示出数据了。但是最后用dispatch数据传递不回去了
来源:9-3 异步获取数据

鹤闲
2019-04-18
这是actionCreators代码:
import axios from 'axios’
import * as constants from ‘./constants’;
const changeSetting = (name, newname)=>({
type:constants.CHANGE_SETTING,
name,
newname
})
export const getSetting = ()=>{
return (dispatch)=>{
axios.get(’/api/setting.json’).then((res)=>{
const result = res.data.data;
console.log(result)
dispatch(changeSetting(result.name, result.newname));
}).catch(() => {
console.log(‘error’);
})
}
};
这是reducer的代码:
import { fromJS } from ‘immutable’;
import * as constants from ‘./constants’;
const defaultState = fromJS({
name:’’,
newname:’’,
school:’’,
myclass:’’,
email:’’,
phone:’’,
id:’’
})
export default (state = defaultState, action) => {
switch(action.type) {
case constants.CHANGE_SETTING:
return state.merge({
name: action.name,
newname: action.newname,
})
default:
return state;
}
}
数据:
{
“success”: true,
“data”: {
“name”: “1”,
“newname”:“1”,
“school”:“1”,
“myclass”:“1”,
“email”:"…@…com",
“phone”:"…",
“id”:1
}
}
console里获取的到数据:
{name: “1”, newname: “1”, school: “1”, myclass: “1”, email: “…@…com”, …}email: "…@…com"id: 1myclass: "1"name: "1"newname: "1"phone: "…"school: "1"proto: Object
actionCreators.js:17 error
1回答
-
Dell
2019-04-18
如果数据拿到了,但是store没变更,那你看下action,reducer文件的逻辑,一般都是这里错了
00
相似问题
回答 1
回答 2