微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将实时数据输入到 NextJS 中?

如何解决如何将实时数据输入到 NextJS 中?

我刚刚开始学习 NEXT JS 框架。

我需要帮助来解决我现在不明白的问题。在普通的 JavaScript 和 React 中,我可以使用“SetInterval”方法在 HTML 中显示生成的 Api。

我的 API 每 3 秒更改一次数据。我想将这些可变数据合并到我的 Next JS 中。

下面我将这两个 API 组合成一个 props 以将数据传送到其他组件。

export async function getServerSideProps(context) {
const [twoDApiRes,saveApiRes] = await Promise.all([
    fetch(_liveResult),fetch(_localTxt),]);

const [twoDApi,saveApi] = await Promise.all([
    twoDApiRes.json(),saveApiRes.text(),]);

// Regex
let csv_data = saveApi.split(/\r?\n|\r/);

// Loop through
const retrieveData = csv_data.map((el) => {
    let cell_data = el.split(',');

    return cell_data;
});

return {
    props: { twoDApi,retrieveData },};

}

enter image description here

要知道的主要事情是您希望在 Next JS getServerSideProps 中“每三秒”更改数据。

我期待与您合作解决这个问题。

解决方法

您可以使用 useEffect 钩子每 3 秒刷新一次数据。

// This function will return Promise that resolves required data
function retrieveData() {
  // retrieves data from the server
}

function MyPage() {
  const [data,setData] = useState();
  const [refreshToken,setRefreshToken] = useState(Math.random());
  
  useEffect(() => {
    retriveData()
      .then(setData)
      .finally(() => {
        // Update refreshToken after 3 seconds so this event will re-trigger and update the data
        setTimeout(() => setRefreshToken(Math.random()),3000);
      });
  },[refreshToken]);

  return <div>{data?.name}</div>
}

或者您可以使用带有 {refetchInterval: 3000} 选项的 docs 库每 3 秒重新获取一次数据。

这是使用 react-queryreact-query

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?