javascript - React( native )导航切换搜索栏

标签 javascript reactjs react-native react-router react-navigation

几天来一直在努力尝试找出如何在 react 导航中切换搜索栏。

我的方法是

static navigationOptions = ({navigation}) => {
  return {
    title: 'Header Title',
    headerLeft: (
      {navigation.params.state.search ? <searchfield query={text => navigation.setParams(text)} > : <settings>}
    ),
    headerRight: (
      <TouchableOpacity style={{ marginHorizontal: 10 }}>
        <Icon name="search" size={28} color="#5751D9" />
      </TouchableOpacity>
    )
  }}

enter image description here

然后我想向 headerLeft 添加一些逻辑,以便它返回齿轮图标按钮组件或 TextInput 组件(计划将文本传递给 setParams 并使用它作为标题下方列表组件中的过滤器),但当我不导航到它时,我似乎无法弄清楚如何将状态或状态处理程序作为 Prop 传递。这是初始屏幕。

最佳答案

将一个函数挂接到 componentDidMount 内的 setParams 上,这将 在 searchedText 更改时调用,使用此函数来 setState。

componentDidMount() {
  this.props.navigation.setParams({onSearchText: (searchedText) => this.onSearchText(searchedText)});
}
onSearchText(searchedText) {
  //update your list using this searchedText
  this.setState({searchedText})
}

现在当 searchedText 发生变化时调用函数 onSearchText(),

static navigationOptions = ({navigation}) => {
  return {
    title: 'Header Title',
    headerLeft: (
      {navigation.params.state.search ? <searchfield query={text => onSearchText(text)} > : <settings>}
    ),
    headerRight: (
      <TouchableOpacity style={{ marginHorizontal: 10 }}>
        <Icon name="search" size={28} color="#5751D9" />
      </TouchableOpacity>
    )
  }}

希望对你有帮助...

关于javascript - React( native )导航切换搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44728479/

相关文章:

javascript - 根据 ReactJS 中的当前状态在单击时显示/隐藏组件

react-native - React Native 中的过滤按钮

javascript - 使用 jQuery 在离开网站之前警告用户

javascript - 获取当前 URL 会给出 Router 的静态注入(inject)器错误

javascript - 从S3存储桶上的文件夹中删除文件

javascript - AngularJS 2 异常 : Error: Uncaught (in promise): TypeError: Cannot set property 'company' of null

javascript - 如何设置正确的 src 路径(GET localhost 获取 404(未找到))?

reactjs - 如何在 Next.js 中使用 webrtc-adapter npm 包

react-native - _react3.default.createref 不是一个函数。(在 '_react2.default.createRef()' _react2.default.createRef 是未定义的

animation - react-native:禁用动画