React native React本机搜索栏不变冲突错误';函数应为,但得到的值为object';
我正在使用来自React native React本机搜索栏不变冲突错误';函数应为,但得到的值为object';,react-native,search,searchbar,react-native-elements,React Native,Search,Searchbar,React Native Elements,我正在使用来自react native elements的,我正在尝试使用它,以便当用户在键盘上按下enter或return时,项目将执行一个功能 这是我的密码 const CategoryScrn = (props) =>{ const [searchAPI, results, errorMessage] = searchResults(); const [term, setTerm] = useState('') const city = props.navig
react native elements
的
,我正在尝试使用它,以便当用户在键盘上按下enter
或return
时,项目将执行一个功能
这是我的密码
const CategoryScrn = (props) =>{
const [searchAPI, results, errorMessage] = searchResults();
const [term, setTerm] = useState('')
const city = props.navigation.state.params.city;
const category = props.navigation.state.params.category;
useEffect(() => {
searchAPI(city,category,'');
}, [])
return(
<SearchBar
placeholder="Search"
onChangeText={setTerm}
onSubmitEditing={searchAPI(city, category,`${term}`)}
value={term}
inputStyle={styles.input}
inputContainerStyle={styles.inputContainer}
containerStyle={styles.container}
placeholderTextColor='white'
/>
)}
const categoriyscrn=(道具)=>{
const[searchAPI,results,errorMessage]=searchResults();
const[term,setTerm]=useState(“”)
const city=props.navigation.state.params.city;
const category=props.navigation.state.params.category;
useffect(()=>{
searchAPI(城市,类别,”);
}, [])
返回(
)}
useffect
函数工作完全正常,因此我知道我的API调用中没有问题。但是,当我在搜索栏
中输入文本时(有时甚至在我输入任何内容之前),应用程序将崩溃,我将是一个错误
不变冲突:预期“onSubmitEditing”侦听器是一个函数,而得到的是“object”类型的值
您需要更改以下内容:
onSubmitEditing={searchAPI(city, category,`${term}`)}
到
这样想吧。每次重新渲染组件时,每行代码都会再次运行。在原始版本中,这意味着该函数将在每次渲染时执行
在新版本中,它只是表示函数已声明,但未运行。您只是让SearchBar组件在用户按下search按钮时可以执行它
希望这是有道理的。你会看到这个确切的场景出现了很多次!:) onSubmitEditing={()=>SearchAPI()},也许?你是我的朋友……是个天才。非常感谢。
onSubmitEditing={() => searchAPI(city, category,`${term}`)}