【发布时间】:2021-07-01 22:19:32
【问题描述】:
像这里的许多其他帖子一样,我在 componentDidUpdate 函数中获得了相同的道具。这是相关代码。
Child
componentDidUpdate(prevProps, prevState) {
if (prevProps.data !== this.props.data) {
console.log('Next up mounted')
}
}
Parent
static async getInitialProps({ query }) {
const props = axios
.post('http://localhost:3000/api/club', { clubId: query.clubid })
.then((res) => {
//...Do stuff here
return {
...
data: res.data.payload,
...
}
updatePbd(newBet) {
let newPbd = [newBet[0]].concat(this.state.clubBetsPending)
let allBets = this.state.clubBetsResulted.concat(newPbd)
this.setState({ data: allBets })
}
render() {
return (<>
{this.state.data && (
<NextUp
data={this.state.data}
/>
)}
</>)
}
所以理论上,当我调用 updatePbd 并将其传递给单个数组元素时,它应该被附加到数组并更新导致子组件运行控制台日志的状态。 首先,它甚至在第一次加载时也不会运行,所以它不应该总是从 prevProps = null 然后 props = something 开始吗? 无论如何,在函数运行时 prevProps 和当前 .props 是相同的。 谢谢
【问题讨论】: