React-Native: Passing keyword in props for searching

Viewed 344

I need a little help in a small issue. In my first screen, I have a flatlist which has some keywords. I want if I click on any keyword, I should be navigated to another screen with the prop of that keyword. I am doing like this inside the flatlist:

<FlatList
    data={myRecentSearches}
    renderItem={({ item, index }) => (
    <TouchableOpacity
         onPress={() => props.navigation.navigate("search", { searchValue: `${item.keyword}` })}>
          <Text>{item.keyword}</Text>
    </TouchableOpacity>
)}

In the next screen, I want the input field should already be initialized with that keyword.

const SearchScreen = (props) => {
  const [searchValue, setSearchValue] = useState("");
  return (
    <View activeOpacity={0.5} style={styles.searchContainer}>
        <TextInput
          allowFontScaling={false}
          value={searchValue} //I want this value to be already initialized/populated with the prop
          returnKeyType="search"
          autoFocus
          />
      </View>
  )
}
1 Answers

In your first screen have the SearchScreen like this:

return(
<SearchScreen keyWord={item.keyword}/>
)

And inside SearchScreen:

const SearchScreen = (props) => {
  const [searchValue, setSearchValue] = useState(props.keyWord);
  return (
    <View activeOpacity={0.5} style={styles.searchContainer}>
        <TextInput
          allowFontScaling={false}
          value={searchValue} //I want this value to be already initialized/populated with the prop
          returnKeyType="search"
          autoFocus
          />
      </View>
  )
}
Related