【发布时间】:2020-10-04 06:17:54
【问题描述】:
如果我使用数字或字符串作为默认值,它会在使用 setVotes 后重新呈现应用程序,就像使用 setSelected 一样。使用数组它不起作用(只会在页面重新呈现后显示真正更新的数组,因为很容易使用 setSelected 按钮检查)
const App = (props) => {
const [votes, setVotes] = useState([0,0,0,0,0,0])
const [selected, setSelected] = useState(0)
const handlenext = () => {
setSelected(Math.floor(Math.random() * 6))
}
const handlevote = () => {
let newvotes=votes
newvotes[selected]+=1
setVotes(newvotes)
}
return (
<div>
<button onClick={handlenext}> next anecdot</button>
<p>{props.anecdotes[selected]}</p>
<button onClick={handlevote}> vote</button>
<p>votes {votes[selected]}</p>
</div>
)
}
const anecdotes = [
'I',
's',
'T',
'A',
'l',
'.'
]
【问题讨论】:
标签: reactjs react-hooks use-state rerender