У меня есть система CMS, которая позволяет пользователям создавать магазин, связывая его со своим доменом.
Я пытаюсь получить идентификатор магазина из API на основе одного домена.
Вот результат API (shop is foreginkey для объекта param)
{
"id": 1,
"country": {
"code": "US",
"name": "United States of America"
},
"logo": "http://localhost:8000/media/512x512bb.jpg",
"site_name": "demo shop",
"site_type": "shop",
"city": null,
"site": 1,
"shop": 2,
}
Мне нужен идентификатор магазина, который в данном случае равен 2.
редукторы / параметры. js
const initialState = {
country: null,
logo: '',
site_name: '',
paramsLoading: false,
error: '',
site_type: ''
};
const paramsReducer = (state = initialState, action) => {
switch (action.type) {
case SITE_PARAMS_REQUESTED:
return {
...state,
paramsLoading: true,
error: ''
};
case SITE_PARAMS_SUCCESS:
return {
...state,
paramsLoading: false,
id:action.payload.id
};
case SITE_PARAMS_FAILURE:
return {
...state,
paramsLoading: false,
error: action.error
};
default:
return state;
}
};
export default paramsReducer;
действия / параметры. js
export const getSiteParams = () => async dispatch => {
dispatch({ type: SITE_PARAMS_REQUESTED });
try {
const response = await axios.get('/site_params/')
console.log(response)
dispatch({
type: SITE_PARAMS_SUCCESS,
payload: response.data
});
} catch (error) {
console.error('Cannot get site params, error is', error);
dispatch(logOut());
}
}
index. js
componentDidMount() {
const { activeShop, menus, menuType, rehydrated } = this.props;
if (
(rehydrated && !activeShop) ||
checkShouldReloadData(this.props[menuType])
)
{
// this.props.push('/');
this.props.getSiteParams()
this.props.setActiveShop(Number(this.props.params.id));
}
Чего мне не хватает?