Jquery更改函数是否在ReactJS中无法正确更新变量?

时间:2018-03-21 18:07:14

标签: javascript reactjs components jquery-select2 onchange

我使用jquery更改功能,但是当我更改输入值时,我得到一个空字符串!!这是我的代码任何帮助PLZ:



class SearchForm extends React.Component{
			constructor(props) {
				super(props);
				this.state = {input_term_value: "",spaces_list: ""};
			}
			componentDidMount() {
				var space_change_value = "";
				$("input.sp-autocomplete-spaces").change(function() {
					space_change_value = $(this).val();
				});
				this.setState({spaces_list: space_change_value});
			}
			updateInputValue(evt){
				this.setState({input_term_value: evt.target.value});
			}
			componentDidUpdate (prevProps, prevState) {
			    this.sendGetRequest();
			}
			sendGetRequest(){
				var _this = this;
				this.serverRequest = 
				axios




2 个答案:

答案 0 :(得分:0)

由于我无法看到任何标记,因此我假设在安装到DOM之后没有用于选择元素的参考,您必须做什么:

  • 使用DOM引用代替CSS选择器。

  • 设置回调内的状态。

不要忘记您也可以直接在输入元素中使用onChange

答案 1 :(得分:0)

您应该将所有代码嵌套在change处理程序中,使用胖箭头更改处理程序来保留this范围,而不是从$(this).val()中提取您的值,您应该接受事件参数并使用e.target.value获取输入值:

$("input.sp-autocomplete-spaces").change( e => {
    this.setState({ spaces_list: e.target.value });
});