setState之后的state的状态改变了。但是并没有重新渲染界面。有大神知道吗。



  • 有哪些原因为导致这样的问题呢



  • 没图没代码 你让我们猜吗



  • 哈哈

    (请增添发帖内容,不能少于 8 个字符。)



  • 初始数据需要在方法 componentDidMount()方法中使用this.setState 吧 还有就是 tab切换也有这个 建议参考TabBarIOS http://reactnative.cn/docs/0.27/tabbarios.html#content 这里面有实际例子更改this.state的 应该是你的没有执行或者执行出错 可以使用debug in chrome 来看看



  • 你是 Component 的参数是 外面的一个 state 吗?

    可以参考下React Native 中组件的生命周期
    http://www.race604.com/react-native-component-lifecycle/



  • @vvviop 好的,我检查下。



  • @hainuo 我的状态改变了,但是没有渲染。



  • @茗s 还是showyourcode吧 大神这么多 免费帮你review你都不上代码。你看我出错了 不止是上视频还讲github rep地址也放出来的 ,你得让人知道你是怎么写的,不然错误找不出来的,只说结果 没有流程步骤或者代码来排查 靠猜测 好难啊 。



  • @hainuo 嗯嗯,之前用的react-native-menu这个组件,但是觉得控件弹出框有点卡。所以就想自己写,主要没写出来,代码就删了,要写其他的东西,就把menu这个控件改了下。是这样的,就是点击NavBar按钮之后设置setState,在渲染处加三目运算判断,ture的话就是渲染出一个TouchableOpacity,TouchableOpacity是覆盖整个页面的,在TouchableOpacity上定位一个View菜单加点击,点击TouchableOpacity,和点击菜单都setState,达到点击空白处和View菜单隐藏菜单的效果。大概就是这么个流程。
    render() {
    return (
    <MenuContext style={{ flex: 1 }}>
    <NavBar ref='NavBar' title='FOA'/>
    <TabBarPage ref='tabBarPage' onChangeTab={this.onChangeTab}/>
    {this.State.isOpen?<View><View>:nill}//相当于这样
    <ProgressDialog ref="progressDialog"/>
    </MenuContext>
    )

    }


  • 首先,state应该是小写的。


登录后回复