Найти объект по домену - PullRequest
       0

Найти объект по домену

0 голосов
/ 26 января 2020

У меня есть система 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));
    }

Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...