Markdown预览器中textarea无法输入更新的问题求助
React受控textarea无法输入的问题排查与解决
核心问题:方法绑定错误
你的构造函数中存在明显的语法错误,导致handleChange方法的this指向异常:
// 错误写法 this.handleChange(this.handleChange.bind(this));
这行代码相当于直接调用了handleChange方法,并把绑定后的函数作为参数传入,完全不符合React方法绑定的逻辑。正确的写法应该是将绑定后的函数赋值给实例属性:
// 正确写法 this.handleChange = this.handleChange.bind(this);
原写法会导致onChange触发时,handleChange内部的this不是组件实例,调用this.setState会抛出错误,但被你写的空try/catch吞掉了,所以看不到报错信息。
辅助修复建议
移除无意义的try/catch
你在handleChange中添加的try/catch没有任何错误输出,直接掩盖了真实问题,建议暂时删除或补充错误打印:handleChange(event) { this.setState({ markdown: event.target.value }); }检查依赖变量与库
- 确认
initialMarkdown已被正确定义并赋值,若它为undefined会导致textarea初始状态异常 - 确认
marked库已正确引入并能正常调用,若该函数不存在,dangerouslySetInnerHTML会抛出错误,间接影响组件渲染
- 确认
内容的提问来源于stack exchange,提问作者Brady Brown
相关产品推荐
相关产品推荐

