You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native类组件修改state报错:_this2.state不是函数

TypeError: _this2.state is not a function 错误解决方案

错误根源

React Native类组件中,this.state是存储状态的普通对象,并非方法。你在onValueChange里直接调用this.state({range:value})试图修改状态,这是完全错误的用法——类组件必须通过setState()方法来更新状态。

修正代码

修复Slider组件的状态更新逻辑

将错误的this.state()调用替换为setState():

<Slider 
  style={styles.slider}
  disabled={false} // 原代码仅写了disabled未赋值,会导致组件默认禁用,建议显式设置
  value={this.state.percent}
  onValueChange={(value) => this.setState({ range: value })}
/>

额外说明

  1. 你在构造函数中初始化this.state的写法是正确的,这是类组件初始化状态的标准方式。
  2. 如果需要基于当前状态计算新状态(比如同步更新range和percent),请使用函数式setState:
onValueChange={(value) => {
  this.setState(prevState => ({
    range: value,
    percent: value // 同步更新percent为当前滑块值
  }))
}}

内容的提问来源于stack exchange,提问作者stacksflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:31:04