javascript - 使用 prevState setState 失败

标签 javascript reactjs

下面我的 react 方法有什么问题

toggleReply = () => {
        this.setState(prevState => ({ reply: !prevState.reply }))
    }

我知道我可以this.setState({reply: !this.state.reply})但是上面的代码也可以工作,但它没有,有任何线索吗?

最佳答案

您的 setState 有效,按照docs - 尝试下面的这个片段。这是假设您的 Component 类已正确定义,并且您的toggleReply 处理程序在构造期间绑定(bind)到 this,或者您使用箭头函数来调用它。

class Thing extends React.Component {
    constructor(props) {
        super(props);
        this.state = { reply: false };
        this.toggleReply = this.toggleReply.bind(this);
    }

    toggleReply() {
        this.setState(prevState => ({ reply: !prevState.reply }))
    }

    render() {
        return (
            <div>
                <button onClick={this.toggleReply}>Toggle Reply</button>
                <span>{` ${this.state.reply}`}</span>
            </div>
        );
    }
}

ReactDOM.render(
    <Thing />,
    document.getElementById('root')
);
<script src=" https://cdnjs.cloudflare.com/ajax/libs/react/15.6.1/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.6.1/react-dom.min.js"></script>
<div id="root"></div>

关于javascript - 使用 prevState setState 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44594025/

相关文章:

javascript - React 导航 - 如何导航到数据源中的特定索引

javascript - 如何使用嵌套路由向页面添加内容而不用 react-router-v4 删除先前路由的内容?

reactjs - 返回 JSX 的函数和类组件有什么区别?

javascript - JQuery - 当另一个选择改变时改变选择的选择选项

javascript - 如何匹配特定的正则表达式?

javascript - 将标记/代码作为文本发布

css - TailwindCSS : is it possible to remove a box-shadow on print?

javascript - Moment isSameOrAfter 计算不正确

javascript - append() 是 jQuery 函数还是 Javascript 函数?

javascript - 我应该将 React 中不使用此方法的方法转换为静态方法吗?