Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native React本机搜索栏不变冲突错误';函数应为,但得到的值为object';_React Native_Search_Searchbar_React Native Elements - Fatal编程技术网

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}`)}