我寫了一個時間倒計時組件:陣營錯誤:只能更新一安裝或安裝組件
class CountDown extends React.Component {
constructor(props) {
super(props)
const {target} = this.props
this.state = {
target,
}
}
componentDidMount() {
const {target} = this.state
if (target) {
setTimeout(() => {
this.setState({
target: target - 1,
})
}, 1000)
}
}
render() {
const {target} = this.state
return <span>{target}</span>
}
}
時運行它,在開發控制檯告訴我
setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the CountDown component.`
我不知道我的代碼有什麼問題
是你所有的代碼嗎?你如何渲染它? – Li357
@ Li357' ' –
hh54188
這不是在這個代碼塊 - 這是一個[工作代碼沙箱](https://codesandbox.io/s/q7885xzxv4)。注意:如果你想讓它繼續減計數,你可能想使用'setInterval'而不是'setTimeout'。當<1時,可能是clearInterval的一個條件。 –