Как конвертировать Promise в строку? Я использовал Ax ios и вернул данные в мой реагирующий компонент - PullRequest
0 голосов
/ 04 марта 2020

У меня есть вызов API Cloudinary после того, как изображение было загружено, оно возвращает обещание вместо строки. Я хотел получить URL-адрес загруженного изображения для сохранения в моей базе данных.

Вот скриншот возврата:

Debug return result

Вот мой код Axe ios:

export const uploadImage = imageUpload => async dispatch => {
  try {

    const formData = new FormData();
    formData.append('file', imageUpload);

    const res = await axios.post(
      'https://api.cloudinary.com/v1_1/frank/image/upload',
      formData
    );

    return res.data.secure_url;
  } catch (err) {
    const errors = err.response.data.error;
  }
};

Я также пытался использовать .then(), но моя переменная возвращает undefined.

1 Ответ

0 голосов
/ 05 марта 2020

Хорошо, поэтому я отправляю свой рез через мой редукционный поток

dispatch({
  type: UPLOAD_SUCCESS,
  payload: res.data.secure_url
});

Затем в моем компоненте я использовал ловушку useEffect для установки моих formData. Я также использовал крючок useState для своих реквизитов

const [formData, setFormData] = useState({photo: '', imgURL: ''});

Если отправка активирована

useEffect(() => {
  setFormData({ ...formData, photo: image });
}, [image]);

Теперь моя фотография установлена ​​в строку. Спасибо, что поделились своими идеями. Это помогло.

...