Запрос на отправку Redux для моего компонента класса - PullRequest
0 голосов
/ 05 мая 2020

Ну, мой почтовый запрос работает очень хорошо, однако у меня проблемы со сбором ее данных после обновления приложения.

    case UPDATE_PROFILE:
      return {
        ...state,
      }
    case UPDATE_PROFILE_SUCCESS:
      return {
        ...state,
        data: action.payload
      }
    case UPDATE_PROFILE_ERROR:
      return {
        ...state
      }
    default:
      return state;

это мой редуктор

export const update_profile = ({
  about,
  birthday,
  birth_location,
  residence_location,
  occupation,
  company_name,
  gender,
  marital_status,
  phone
}) => {
  return async dispatch => {
    dispatch(
      {
        type: UPDATE_PROFILE
      }
    )

    const data = {
      "user": {
        "about": about,
        "birthday": birthday,
        "birth_location": birth_location,
        "residence_location": residence_location,
        "occupation": occupation,
        "company_name": company_name,
        "gender": gender,
        "marital_status": marital_status,
        "cellphone": phone
      }
    }

    try {
      const token = await AsyncStorage.getItem('@token_jwt',
        (error, token) => {
          let url = "/update_profile"

          const headers = {
            "Content-Type": "application/json",
            "Authorization": `Bearer ${token}`
          }

          const options = {
            method: 'POST',
            headers: headers,
            data: data,
            url: `${SERVER}${url}`
          }

          Axios(options)
            .then((response) => {
              updateProfileSuccess(dispatch, response)
            })
            .catch((err) => {
              updateProfileError(err, dispatch)
            });
        });
    } catch (e) {
      console.log(e.message)
    }
  }
}

const updateProfileSuccess = (dispatch, response) => {
  dispatch(
    {
      type: UPDATE_PROFILE_SUCCESS,
      payload: response.data.user
    }
  )
  console.log(response.data.user.name)
}

const updateProfileError = (err, dispatch) => {
  dispatch(
    {
      type: UPDATE_PROFILE_ERROR
    }
  )
  console.log(err)
  // Alert.alert('err')
}

это мой actionReducer, в нем я использую свой массив, когда мне это удается.

Трудность заключается в следующем коде, я обновляю его и отправляю по почте, за исключением того, что мне всегда нужно возвращать данные, даже после перезагрузки приложения и если пользователь сделает еще одно сообщение, обновите его снова.

<Text style={{ color: '#383941', fontSize: 22, alignSelf: "center", fontFamily: 'PTSans-Bold' }}>{this.props.data.name}</Text>

Когда я отправляю, этот текст возвращает мое имя, но когда я обновляю, он возвращает пустое

I имейте в виду, что ошибка возникает из-за того, что когда я перезагружаю страницу, запрос снова отправляется со всеми пустыми полями, как это сделать. Как сделать запрос без отправки полей?

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