为什么我的API调用应该在随机的情况下接收重复数据?

杰克逊123

因此,我正在构建一个进行API调用的React应用程序,以接收一个随机对象,该对象包含引号,作者和一些其他信息。当组件安装(页面刷新)时,对象将随机化。但是,绑定到最初拉动API的相同功能的按钮仅会收到与加载页面时相同的对象。随机性是从端点提供的,而不是在我的代码中提供的。

不确定为什么这种方法不起作用,因为接收到的数据在页面刷新时是唯一的,但在onClick事件上却不是。

所以这是我正在使用的一些代码:

我的API提取功能:

httpCallout(){
    fetch('https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1')
    .then(response => response.json())
    .then((data) => {
      const quote = data[0].content;
      this.setState({
        quote: quote,
        author: data[0].title
      });
    });
  }

生命周期函数内的调用:

  componentDidMount(){
    this.httpCallout();

  }

然后元素

<button id="new-quote" className="btn btn-light" onClick={this.httpCallout}>New Quote</button>

同样,我希望每次单击事件都收到一个包含新数据的新对象,但是,正在向我提供与页面加载时相同的数据。

编辑:这只是数据被缓存。我添加{cache: "no-cache"}到提取请求中,此问题已解决。该问题被标记为重复,但是我发现所需的解决方案略有不同,因为我的问题是使用fetch API而不是jQuery或AJAX。

提特尼斯

使用以下命令禁用响应缓存{cache: "no-cache"}

fetch(
'https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1',
 {cache: "no-cache"}
)

更多信息:https : //hacks.mozilla.org/2016/03/referrer-and-cache-control-apis-for-fetch/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在什么情况下我们应该在类型声明中使用`[] a`?

为什么我应该在NoSql数据库(MongoDB)中有多个集合

我应该在哪里调用使用数据的方法?

我应该在哪里调用Rest API

为什么我应该在获取时使用HttpClient?

为什么我应该在Flutter中使用Cards?

为什么为 describe 执行 before(:context) ?理想情况下,它应该在规范中的 Context 之前执行

我应该在没有手动分块的情况下通过gRPC传输大型数据集吗?

我的 while 循环中的 if 语句在不应该出现的情况下不断重复。它应该在 if 状态之后返回到 while 循环

我应该如何避免平面 vuex 结构中的重复数据和 API 调用?

我应该在握住锁的情况下还是放开锁之后通知我?

为什么我应该在transformPage()中调用setTranslationX(),这不会影响View的最终位置吗?

从网络调用接收到 List<Object> 的内容后,我应该在哪里更改它?

我应该在以下情况下使用线程安全集合吗?

在这种情况下,我应该在哪里叫删除?

我的strcmp应该在不返回0的情况下

在这种情况下,我应该在 CreateDC 之后使用 DeleteDC

CachedNetworkImage和CachedNetworkImageProvider有什么区别?应该在哪种情况下使用?

为什么我应该在声明时初始化数据成员(在构造函数上不需要)?

即使在用户未提供要插入的数据的情况下,我也应该在数据库中插入数据时包括异常处理吗?

为什么 mysqli_connect() 必须在没有加密的情况下接收密码参数?

为什么我的函数返回零为什么它不应该在 R 中

调整浏览器大小时,为什么我的导航菜单会消失。我应该在Jquery中添加什么来防止这种情况?

为什么要在拥有字符串池的情况下进行字符串重复数据删除

我应该在没有JavaScript文件的情况下添加什么以在Node.js中创建可执行文件?

为什么Windows 8.1应该在我的“全名”出现的地方使用我的Hotmail地址?

为什么我的异步Jest测试应该在什么时候不失败?

为什么我的if语句应该在什么时候不评估为假?

什么时候以及为什么我们应该在角度使用View Encapsulation