获取axios.get数据并将其置于redux reducer初始状态的地方可以通过以下步骤实现:
npm install axios redux react-redux
import axios from 'axios';
export const fetchData = () => {
return (dispatch) => {
axios.get('your_api_endpoint')
.then(response => {
dispatch({ type: 'FETCH_DATA_SUCCESS', payload: response.data });
})
.catch(error => {
dispatch({ type: 'FETCH_DATA_FAILURE', payload: error.message });
});
};
};
在上述代码中,我们使用axios发送GET请求到指定的API端点,并根据请求结果分发不同的action。
const initialState = {
data: null,
error: null,
};
const dataReducer = (state = initialState, action) => {
switch (action.type) {
case 'FETCH_DATA_SUCCESS':
return {
...state,
data: action.payload,
error: null,
};
case 'FETCH_DATA_FAILURE':
return {
...state,
data: null,
error: action.payload,
};
default:
return state;
}
};
export default dataReducer;
在上述代码中,我们定义了一个初始状态initialState,以及一个dataReducer函数来处理不同的action类型。当获取数据成功时,我们更新state中的data字段,并将error字段置为null;当获取数据失败时,我们将data字段置为null,并将error字段更新为错误信息。
import { combineReducers } from 'redux';
import dataReducer from './dataReducer';
const rootReducer = combineReducers({
data: dataReducer,
});
export default rootReducer;
在上述代码中,我们使用combineReducers函数将dataReducer添加到根reducer中。
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { fetchData } from '../actions/dataActions';
const YourComponent = ({ data, error, fetchData }) => {
useEffect(() => {
fetchData();
}, []);
if (error) {
return <div>Error: {error}</div>;
}
if (!data) {
return <div>Loading...</div>;
}
return (
<div>
{/* Render your component with the fetched data */}
</div>
);
};
const mapStateToProps = (state) => {
return {
data: state.data.data,
error: state.data.error,
};
};
export default connect(mapStateToProps, { fetchData })(YourComponent);
在上述代码中,我们使用useEffect钩子在组件加载时调用fetchData函数来获取数据。根据获取数据的状态,我们渲染不同的内容。
通过以上步骤,你可以成功获取axios.get数据并将其置于redux reducer初始状态的地方。请注意,上述代码中的'your_api_endpoint'应替换为你实际的API端点。
领取专属 10元无门槛券
手把手带您无忧上云