我正在用React构建一个web应用程序,并且正在用componentDidMount做一个fetch请求,例如:
fetch('http://localhost:8080')
.then(currencies => currencies.json())
.then(currencies => this.setState({
currencies, loading: false
}))
.catch(err => console.log(err));这在我的机器上是有效的。我想将应用程序部署到Kubernetes,因此我将localhost更改为服务名称,例如http://history:8080。
当我部署它时,似乎在打开前端时,前端会加载到我的浏览器中,然后尝试从我的个人笔记本电脑中获取history:8080。
这是真的吗,还是我误解了我的错误?
如果这是真的,我如何在后端强制fetch?我需要由容器执行请求,然后只需要为我提供页面。
发布于 2020-03-06 20:57:46
您使用的是react-router吗?有时,如果客户端路由和服务器路由是相同的url/端点,则它们之间会发生冲突,然后解决方案是添加“/api”等。在后端路由之前,这就是它们不会冲突的原因。
发布于 2020-03-06 21:12:26
请在reactjs网站https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#fetching-external-data中阅读此部分
当支持服务器渲染时,目前需要同步提供数据- componentWillMount通常用于此目的,但构造函数可以用作替代。即将到来的suspense API将使客户端和服务器渲染的异步数据获取成为可能。
https://stackoverflow.com/questions/60564138
复制相似问题