我正在尝试从 componentWillMount() 函数中访问 this.state.timeRemaining 值。我已经解构了 this.state 对象并将值重命名为“swag”。我希望我的 console.log() 语句打印出“5”(因为我已经设置了状态并在回调函数中运行了这个打印语句)但是“null”的值被打印出来。我相信这是一个特定于解构的问题,因为我可以通过在 console.log() 语句中使用 this.state.timeRemaining 来打印“5”。任何想法为什么会这样?这和上下文有什么关系吗?
class Favr extends Component {
constructor(props) {
super(props);
this.state = {detailsAreShowing: false, timeRemaining: null};
this.showDetails = this.showDetails.bind(this);
}
componentWillMount() {
const { timeRemaining: swag } = this.state;
const { favr: {expirationTime} } = this.props;
let remainingTimeInMil = expirationTime.getTime() - Date.now();
this.setState({timeRemaining: 5}, () => {
console.log(swag); // prints null
});
...
}
...
}