在滑块事件状态上设置状态不是函数错误

set state on slider event state is not a function error

我试图在更新滑块时更改状态。 以某种方式出现 setState is not a function 错误:

"TypeError: this.setState is not a function"

我是 React 新手,我可能还没有意识到如何使用状态。

var ReactDOM = require('react-dom');
var React = require('react');
var SliderComponent = require('rc-slider');

class Slider extends React.Component {
constructor(props) {
    super(props);
    console.log("SLIDER");
    console.log(props);
    this.state = {
        value: 50,
    };

}
onSliderChange(value){
    console.log(value);
    this.setState({
        value: value
    });
}
render() {
    return (<div> SLider
        <SliderComponent value={this.state.value} tipTransitionName="rc-slider-tooltip-zoom-down" onChange={this.onSliderChange} />
    </div>)
}
}

module.exports = Slider;

您需要将 this 绑定到 onSliderChange 函数。

<SliderComponent value={this.state.value} tipTransitionName="rc-slider-tooltip-zoom-down" onChange={this.onSliderChange.bind(this)} />

您也可以在构造函数中执行此操作。

constructor(props) {
    super(props);
    console.log("SLIDER");
    console.log(props);
    this.state = {
        value: 50,
    };
    this.onSliderChange = this.onSliderChange.bind(this)
}

还有很多其他方法可以做到这一点。

https://medium.com/@housecor/react-binding-patterns-5-approaches-for-handling-this-92c651b5af56