如何解决useState 在添加到以前的状态时返回一个对象
我有一个按钮和 onClick 我希望它在前一个偏移量上增加 20。但是,当我执行以下操作时,由于某种原因我得到了一个对象:
const [ offset,setoffset ] = React.useState(20);
const { data,fetchMore } = useQuery(GET_Feed,{
variables: {
offset: offset,limit: 10
},fetchPolicy: 'cache-and-network'
});
<button onClick={(prevOffset) => setoffset(prevOffset + 20)>Next</button>
点击下一步后,请求抛出 400,浏览器显示这些是变量:
variables {…}
limit 10
offset "[object Object]20"
如果我这样做:
<button onClick={() => setoffset(20)>Next</button>
它运行成功,但我的偏移量为 20。
解决方法
您正在传入 onClick
event
参数。这实际上是一个对象...
setState
允许您传递参数为旧状态的函数。我想这就是你的意思。
试试下面的方法。
const [ offset,setOffset ] = React.useState(20);
const { data,fetchMore } = useQuery(GET_FEED,{
variables: {
offset: offset,limit: 10
},fetchPolicy: 'cache-and-network'
});
<button onClick={() => setOffset(prevOffset => prevOffset + 20)>Next</button>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。