在 react-native 中显示/隐藏状态更改的组件时出错

Posted

技术标签:

【中文标题】在 react-native 中显示/隐藏状态更改的组件时出错【英文标题】:Error showing/hiding component with state change in react-native 【发布时间】:2016-08-08 11:45:49 【问题描述】:

我正在尝试在我的 react 本机应用程序中选择性地显示/隐藏一个组件。我正在使用的代码的精简版受到Hide/Show components in react native 的启发。代码如下:

'use strict';
var React = require('react-native');
var 
  Text,
  Navigator,
 = React;


class SomePage extends Component 

  constructor(props) 
    super(props);
    this.state = 
      showView : true,
    ;
  

  render() 
    return (
      <Navigator
          renderScene=this.renderScene.bind(this)
      />
    );
  

  testRender()
  
    return (
      <Text>ShowView: this.showView</Text>
        )
  

  renderScene(route, navigator) 
    if (this.state.showView)
      return (this.testRender.bind(this))
    
    else
    
      return (<Text>ShowView: this.showView</Text>)
    
  

不幸的是,该代码无法正常工作,并在

上引发“意外令牌错误”
return (this.testRender.bind(this))

如果我把这一行写成

return (this.testRender.bind(this))

错误消失了,但我只是得到一个空白屏幕。知道我在这里做错了什么吗?

【问题讨论】:

【参考方案1】:

bind 在这里不是正确的方法。您需要调用该函数。

  renderScene(route, navigator) 
    if (this.state.showView)
      return this.testRender();
    
    else
    
      return (<Text>ShowView: this.showView</Text>)
    
  

【讨论】:

老兄!太感谢了!这让我转了几个小时!

以上是关于在 react-native 中显示/隐藏状态更改的组件时出错的主要内容,如果未能解决你的问题,请参考以下文章

为啥组件在状态更改后不重新渲染。在 react-native 函数组件中

在 react-native 中隐藏和显示带有动画的 createBottomTabNavigator 选项卡栏

如何在 react-native 中更改应用程序的显示名称

TextInput 在 react-native 中隐藏在键盘后面

在 react-native 上更改 textInput 突出显示(自动完成)的背景颜色

如何将更改的状态发送到 react-native 中的组件?