在reactjs中将数据设置为状态时,我遇到了错误,
场景:将数据从子组件传递到父组件,在子组件中,我正在调用父函数并使用setstate更改状态值,
ChildComponent
search(){
var input = this.refs.userInput.value;
this.props.findSearch(input);
input.value = '';
}
父项:
findSearch(input){
axios.get(`http://localhost:3000/blogs`)
.then(res => {
input = input.toLowerCase();
let rest = res.data.filter((e)=>{
e.cardtitle === input;
});
this.setState({result:rest}); // here I am getting the error
})
}
能帮我个忙吗?
答案 0 :(得分:1)
在您的react组件中将函数绑定到此上下文。
constructor(props) {
super(props);
this.findSearch = this.findSearch.bind(this);
}
答案 1 :(得分:1)
似乎像this
context related issue。
您应该将bind
的函数与class
一起this
或只使用箭头函数作为类字段来获取this
的词法上下文:
findSearch = (input) => {
axios.get(`http://localhost:3000/blogs`)
.then(res => {
input = input.toLowerCase();
let rest = res.data.filter((e)=>{
e.cardtitle === input;
});
this.setState({result:rest}); // here I am getting the error
})
}
请注意,班级字段是第3阶段的提案,您可能需要添加babel-plugin-transform-class-properties