.unshift 不是函数
.unshift is not a function
我刚开始学习 React JS,正在尝试一个简单的项目,我按下一个按钮,一个随机数应该被添加到一个数组中。这是我的代码:
function App() {
const [cache2, setCache2] = useState([])
const nextNumber = () => {
const randomNr = Math.floor(Math.random() * 10)
const newCache = cache2.push(randomNr)
setCache2(newCache)
console.log(cache2)
}
return (
<div className='App'>
<button onClick = {nextNumber}>Next Number</button>
</div>
);
}
但是,它会抛出“cache2.push 不是函数”错误。我无法找出问题所在。有人可以帮助我吗?
Array#push()
是一个突变函数,returns 是你推送的元素,而不是原始数组。因此 setCache2(newCache)
使 cache2
成为数组以外的数字。所以从一个号码调用 push()
会抛出这个错误。
最好创建一个新数组并使用spread operator设置状态:
const nextNumber = () => {
const randomNr = Math.floor(Math.random() * 10)
setCache2([...cache2, randomNr])
console.log(cache2)
}
我刚开始学习 React JS,正在尝试一个简单的项目,我按下一个按钮,一个随机数应该被添加到一个数组中。这是我的代码:
function App() {
const [cache2, setCache2] = useState([])
const nextNumber = () => {
const randomNr = Math.floor(Math.random() * 10)
const newCache = cache2.push(randomNr)
setCache2(newCache)
console.log(cache2)
}
return (
<div className='App'>
<button onClick = {nextNumber}>Next Number</button>
</div>
);
}
但是,它会抛出“cache2.push 不是函数”错误。我无法找出问题所在。有人可以帮助我吗?
Array#push()
是一个突变函数,returns 是你推送的元素,而不是原始数组。因此 setCache2(newCache)
使 cache2
成为数组以外的数字。所以从一个号码调用 push()
会抛出这个错误。
最好创建一个新数组并使用spread operator设置状态:
const nextNumber = () => {
const randomNr = Math.floor(Math.random() * 10)
setCache2([...cache2, randomNr])
console.log(cache2)
}