Могу ли я изменить свой запрос ax ios на пустой с прокси? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть приложение Express, которое принимает запрос GET из базового URL-маршрута, и компонент React, который выполняет запрос с использованием ax ios на componentDidMount.

router.get('/', async (req, res) => {
  try {
    const posts = await Post.find().sort({ createdAt: 'desc' });

    res.json(posts);
  } catch (err) {
    res.status(500).json({ error: err });
  }
});
componentDidMount() {
  axios.get('http://localhost:5000/')
    .then(res => {
      if (res.data.length > 0) {
        this.setState({ posts: res.data });
      }
    })
    .catch(err => console.log(err));
}

Я пытаюсь развернуть свой проект на Heroku и использовать "proxy": "http://localhost:5000" в моем пакете. json, что позволило бы мне сделать «Dynami c» ax ios запросов, например axios.get('/api/user/').then(.... Я хочу изменить свой запрос в приведенном выше методе React componentDidMount на

componentDidMount() {
  axios.get('/')
    .then(res => {
      if (res.data.length > 0) {
        this.setState({ posts: res.data });
      }
    })
    .catch(err => console.log(err));
}

showPosts = () => {
  return this.state.posts.map(post => <Post post={post} key={post._id} />);
};

, но затем получаю сообщение об ошибке «this.state.posts.map не является функцией» метода ниже в моем компоненте React, что наводит меня на мысль, что я получаю это сообщение, потому что posts не является массивом после того, как он установлен на данные из ответа.

Есть ли что-нибудь, что я должен делать иначе в моем желаемом топоре ios запрос GET?

...