我試圖顯示一個加載微調而axios獲取請求正在進行,並且這樣做我相信我需要從請求回調。我調用get請求componentDidMount()
像這樣:Axios回調獲取反應
componentDidMount() {
this.props.fetchCloudProperties(() => {
this.setState({ dim : false });
});
}
如果希望當數據被檢索到,調光器(微調)將離開基於關閉該seState
通話。我有回帖的帖子,但從來沒有做過一個get。我對數據取得動作是:
export function fetchCloudProperties(callback) {
const VARIABLE_URL = '/cloud/properties';
const request = axios.get(`${ROOT_URL}${VARIABLE_URL}`)
.then(request => {
return ({
type : FETCH_CPS,
payload : request
});
}).catch((error) => {
console.log(error);
})
}
眼下控制檯抱怨「操作必須是純對象」,這我不知道這意味着什麼,而且我已經看到了抱怨「未處理拒絕」所以不太確定。
編輯:我有一個使用一個回調createCloudProperty
方法,它工作正常:
export function createCloudProperty(values, callback) {
const VARIABLE_URL = '/cloud/property';
const request = axios.post(`${ROOT_URL}${VARIABLE_URL}`, values)
.then(() => callback());
return ({
type : CREATE_CP,
payload : request
});
}
是從所謂:
onSubmit(values) {
this.props.createCloudProperty(values,() => {
this.props.history.push('/cloudproperties');
});
}
您是否在使用redux或flux或其他? fetchCloudProperties是動作創造者嗎?如果你正在做異步操作,你需要使用'redux-thunk'這樣的東西來返回動作創建者的承諾。 –
[Actions必須是React/Redux中的普通對象?](https://stackoverflow.com/questions/39693161/actions-must-be-plain-objects-in-react-redux) –
@AndyRay我是根據我的理解,使用'redux-promise',並且是'fetchCloudProperties()'是動作創建者。 – erp