gpt4 book ai didi

javascript - setState 不会立即更新状态

转载 作者:行者123 更新时间:2023-11-30 11:23:01 27 4
gpt4 key购买 nike

<分区>

我有简单的组件

class App extends Component {
handleClick() {
let banana = {message: 'banana triggered'};
this.setState({banana});

console.log(this); // banana is set in state!!!!
console.log(this.state); // state is null :O
setTimeout(() => {
console.log(this.state); // banana is set!
}, 5)
}

render() {
const {state, actions} = this.props;

return (
<div>
{this.state && this.state.banana.message} <br />
<button onClick={() => this.handleClick()}>Test</button>


{state.alert.message && <p>{state.alert.message}</p>}
<p onClick={() => actions.alert.success("This is not")}>
This is magic
</p>
</div>
)
};
}

export default connect(
state => (
{
state: {...state}
}
),
dispatch => (
{
actions: {
dispatch: dispatch,
alert: {
success: text => dispatch(alert.success(text))
}
}
}
)
)(App);

问题是我需要在我的 JSX 渲染中添加 this.state && 来检查 this.state 是否存在,我理解在 JavaScript 中它是正常的,但在 React.js 中不正常吗?他应该立即对状态变化使用react吗?同样让我感到困惑的是,来自两个 console.logs 的内容,第一个(这个)在状态中设置了香蕉,第二个是空的。如何?

下图:

enter image description here

附注Redux 没有这个问题,只有本地组件状态

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com