Javascript 父元素和子元素之间的间接通信问题
我在英语中有一个间接交流的问题 我有一个父组件,每个类一个组件。我有一个子组件,它是一个功能组件 家长:Javascript 父元素和子元素之间的间接通信问题,javascript,reactjs,react-native,frontend,dom-events,Javascript,Reactjs,React Native,Frontend,Dom Events,我在英语中有一个间接交流的问题 我有一个父组件,每个类一个组件。我有一个子组件,它是一个功能组件 家长: constructor(props) { super(props); this.state = { search: '', }; } getInfoSearch(userSearch) { this.setState({ search: userSearch }) } render(){ return( <SearchHeader pla
constructor(props) {
super(props);
this.state = {
search: '',
};
}
getInfoSearch(userSearch) {
this.setState({
search: userSearch
})
}
render(){
return(
<SearchHeader placeholder={'Buscar procedimento'} getValueUserSearch={this.getInfoSearch}/>
)
}
构造函数(道具){
超级(道具);
此.state={
搜索:“”,
};
}
getInfoSearch(用户搜索){
这是我的国家({
搜索:用户搜索
})
}
render(){
返回(
)
}
儿童:
import React, {useState} from 'react';
import {View, TextInput} from 'react-native';
const SearchHeader = props => {
const [search, setSearch] = useState('');
const {placeholder, getValueUserSearch} = props;
const handleSearch = (search) => {
console.log(this);
setSearch(search);
getValueUserSearch(search);
};
return (
<View>
<TextInput placeholder={placeholder || 'Buscar'} onChangeText={handleSearch}/>
</View>
);
};
export default SearchHeader;
import React,{useState}来自“React”;
从“react native”导入{View,TextInput};
const SearchHeader=props=>{
const[search,setSearch]=useState(“”);
常量{占位符,getValueUserSearch}=props;
const handleSearch=(搜索)=>{
console.log(this);
设置搜索(搜索);
getValueUserSearch(搜索);
};
返回(
);
};
导出默认搜索头;
但当我在InputText中键入文本时,会发生错误。声明:
“我无法应用未定义的setState函数”
你知道我怎样才能解决这个问题吗?因为我想更改父元素中的“搜索”状态。这是因为您没有将参数传递给
handleSearch
函数,它应该是:
onChangeText={(event) => handleSearch(event.target.value}
错误可能是由于
函数中的.setState
行引起的
尝试使用箭头函数
或在构造函数中执行显式绑定,如下所示
constructor(props) {
...
this.getInfoSearch = this.getInfoSearch.bind(this);
}
(或)
查看更多详细信息。使用箭头功能进行getInfoSearch
。否则,在的构造函数
值处绑定此
内部getInfoSearch
方法可能不是您所期望的。尝试在getInfoSearch
中记录this
并查看其值。
getInfoSearch = (userSearch) => {
this.setState({ search: userSearch });
}