You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native函数组件中state用于Axios请求时title始终undefined问题

问题原因与解决方案

问题出在你的searchBook函数参数定义和调用方式不匹配上!

你看,你定义searchBook的时候用了解构赋值:

const searchBook = ({title}) => { ... }

这表示这个函数期望接收一个包含title属性的对象,但你在按钮点击时的调用是:

<Button title="Search" onPress={() => searchBook(title)} />

直接把字符串类型的title state值传了进去,不是对象。函数内部解构{title}的时候,找不到对应的属性,自然就得到undefined了。

两种解决办法,选一种就行:

办法一:修改调用方式,传对象

把调用改成传递包含title的对象,和函数的解构预期匹配:

<Button title="Search" onPress={() => searchBook({ title })} />

办法二:修改函数参数,去掉解构

直接让函数接收字符串类型的title参数,更贴合你当前的调用逻辑:

const searchBook = (title) => {
  let key = '&key=MYKEY';
  googlebooks
    .request({
      method: 'get',
      // 这里也可以用模板字符串让URL拼接更清晰
      url: `https://www.googleapis.com/books/v1/volumes?q=${title}${key}`,
    })
    .then(function(response) {
      console.log(response);
      setBookResults(response.data.items);
    })
    .catch(function(error) {
      console.log(error);
    });
};

另外补充个小建议:用模板字符串拼接URL比+号更不容易出错,也更易读,就像上面代码里那样。

你的state更新是正常的(console能打出正确的title),只要把参数传递的问题修复,请求就能正常带上title值啦!

内容的提问来源于stack exchange,提问作者Marco Disco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 22:02:43