如何立即加载更改 - React Native

时间:2017-05-27 22:29:40

标签: node.js mongodb express mongoose react-native

问题

如何在每次添加到服务器时加载新数据?

我希望发生什么

  • 用户打开应用
  • 用户将文字上传到服务器
  • 应用程序立即显示服务器中的文本

目前正在发生什么

  • 用户将文字上传到服务器
  • 用户重新加载应用
  • 该应用程序显示服务器中的文本

服务器端

我正在为服务器使用expressJS,然后我将服务器获取的所有文本保存到场外的mongoose DB。

更多信息

  • 我使用的是Node JS服务器

  • 我正在使用fetch API在服务器和服务器之间进行通信 客户端

  • 客户端应用使用React Native编写

1 个答案:

答案 0 :(得分:0)

我不知道您的应用如何提出请求。服务器和客户端的一些代码都很有用。但我可以为您的情况考虑两种可能的解决方案:

从上传请求中返回您的文字

由于您需要服务器响应response data用户将文本上传到服务器,因此您可以在upload request中使用fetch('https://your-server.com/api/upload-text/', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ text: 'yourValue', }) }).then(response => response.json()) .then(responseJson => { // Here is your text returned from server let serverText = responseJson.text // Set your state here with new data this.setState({ textFromServer: serverText }); // Now you can display new data in your render method. }) 。这是一个示例代码:

websockets

通过这种方式,用户无需重新加载应用程序即可获取新的文本数据。服务器响应上传请求后,您的应用将会更新。

<强>的WebSocket

如果您需要从服务器获取的数据不依赖于客户端请求,则可以使用React Native。通过这种方式,您可以随时从服务器或其他客户端获取/发送任何数据。 websockets支持private all(req: Request, res: Response): void { EntityRepository.getRepositoty(req.params.etName).then(repo => { ... }).catch((err) => { this.handleError(res, err); // here I get undefined. }); } 。更多关于here