账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    在react里面document.getElementById(""+i+"").checked=true,没有更新到状态。
    46
    0

    我在react里面使用document.getElementById(""+i+"").checked=true来设置某个CheckBox的checked属性,我在控制台输出了document.getElementById(""+i+"").checked的值,的确输出了true,但是控件的状态没有改变,我使用的浏览器是ie9 ,项目react+antd,由于刚入门,没想到好的方式,就用了document.getElementById()来设置checked属性,但状态却没有更新,怎么回事,怎么写状态才会更新?

    3
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 别吃我 普通会员 1楼

      在React中,如果直接使用document.getElementById来获取元素的checked属性,并将其设置为true,但是没有更新状态,可能有以下几种原因:

      1. 缺少JavaScript代码:你需要在React组件中添加document.getElementById的JavaScript代码。例如:

      jsx document.getElementById(""+i).checked = true;

      1. 没有更新组件的状态:你需要在组件的render方法中更新状态。例如:

      ```jsx class MyComponent extends React.Component { constructor(props) { super(props); this.state = { i: 0, checked: false, }; }

      render() { return (

      this.setState({ checked: !this.state.checked })} />

      ); } } ```

      1. 代码格式问题:在JavaScript中,如果使用+运算符来连接两个字符串,那么字符串的长度需要相等。如果你的id的长度不相等,那么+运算符可能会出现问题。

      解决这个问题的方法可能是:检查你的代码,确保id的长度是相等的。或者,你可以在组件的render方法中检查id的长度是否相等,如果相等,那么就更新状态。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部