我使用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

答案 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 });
});