javascript - 可以打印出值,但是在setState中是 "undefined"

标签 javascript reactjs

<分区>

我有将其值发送给函数的表单:

 _onChange(ev, option) {

    console.log(option.key)  // option.key = 3

    this.setState({ dropdownValue:option.key })  // option key = "undefined"
 }

正如您在上面看到的,我可以打印出该值,例如 3。但是,当我随后尝试将其直接添加到状态时,出现错误“无法设置未定义的状态”。

我已尝试将值添加到变量,然后将其用于 setState,但我仍然遇到该错误。怎么会?

我的 onChange 方法:

<ChoiceGroup
                            className="defaultChoiceGroup"
                            defaultSelectedKey="B"
                            options={[
                                {
                                    key: '1',
                                    text: 'test'
                                },
                                {
                                    key: '2',
                                    text: 'test2'
                                },
                                {
                                    key: '3',
                                    text: 'test3',

                                }
                            ]}
                            onChange={this._onChange }
                            label="Change password for..."
                            required={true}
                        />

最佳答案

您确定“无法设置未定义状态”是您遇到的确切错误吗?我在这里假设 this 未定义,因为您的函数未绑定(bind)到 this。要解决此问题,您可以手动绑定(bind)它或使用箭头功能。我建议使用箭头函数:

_onChange = (ev, option) => {
    console.log(option.key)  // option.key = 3

    this.setState({ dropdownValue:option.key })  // option key = "undefined"
}

关于javascript - 可以打印出值,但是在setState中是 "undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58232501/

相关文章:

node.js - 如何在 JEST 测试用例中检查全局获取的响应

javascript - 单击 NextJS 按钮后,服务器端在 React 中呈现模式

javascript - SCSS根据id添加动画

javascript - 使用 Javascript 测量点击次数?

reactjs - 在 Windows 上,react-native init 不适用于 React-native 0.57.1

javascript - 响应调用子组件中的函数

javascript - 如何创建没有嵌套列表的下拉菜单?

javascript - 将 apache thrift 与 typescript 结合使用

javascript - 防止绝对定位的 div 在不禁用滚动条的情况下吞噬点击事件

javascript - discord.js 将消息作为代码块发送?