Я новичок в реагировании и редукции, пытаюсь получить данные с помощью API, но, к сожалению, пытаюсь выбрать по идентификатору, id
не определен в логере с избыточностью и не возвращает результат со стороны сервера,
Здесьмой код
Мой маршрут <Route path="/admin/:id" component={AdminPage} />
Действие
function getAll(id){
return dispatch =>{
dispatch(request(id));
adminService.getAll(id)
.then( admin => {
dispatch(success(admin));
dispatch(alertActions.success('Welcome Back !'));
},error => {
dispatch(failure(error.toString()));
dispatch(alertActions.error(error.toString()));
});
};
function request(id) { return { type: adminConstants.GETALL_REQUEST, id } }
function success(admin) { return { type: adminConstants.GETALL_SUCCESS, admin } }
function failure(error) { return { type: adminConstants.GETALL_FAILURE, error } }
Редуктор
export function admin( state={}, action){
switch(action.type){
case adminConstants.GETALL_REQUEST:
return { loading: true, id : action.id };
case adminConstants.GETALL_SUCCESS:
return { items: action.admin };
case adminConstants.GETALL_FAILURE:
return { error: action.error };
default:
return state
}
}
Сервис
function getAll(id){
const requestOptions = {
method : 'GET',
headers: authHeader()
};
return fetch(`${apiUrl}/admin/${id}`, requestOptions).then(handleResponse)
.then( data => { return data; });
}
AdminPage
class AdminPage extends React.Component{
componentDidMount(){
this.props.dispatch(adminActions.getAll());
}
render(){
const { admin } = this.props;
return(
<div>
<h3> Admin Panel</h3>
{admin.items &&
<ul>
{admin.items.map((data, index) =>
<li key={data.id}>
email id : {data.email},
end date : {data.dateEnd},
customerId : {data.customerId}
</li>
)}
</ul>
}
</div>
);
}
}
function mapStateToProps(state) {
const { admin } = state;
return { admin};
}
const connectedAdminPage = connect(mapStateToProps)(AdminPage);
export { connectedAdminPage as AdminPage };
Ссылка на главную страницу
<Link to="/admin/5c4f69d5259f7d14434b4cb6">Admin</Link>