• React Native使用react-navigation时,设置navigationOptions中Static中使用this注意点


    使用react-navigation时,单页面设置navigationOptions中,进行Static中调用方法,不能像以下设置

    onPress = {()=>this.clickFinishButton()}
    export default class extends Component {
      static navigationOptions = ({
        navigation,
        screenProps
      }) => ({
        headerTitle: 'List实现多选',
        headerTitleStyle: {
          color: 'white'
        },
        headerStyle: {
          backgroundColor: Color.kMainColor // 设置导航栏的背景颜色,headerTintColor设置无效
        },
        headerRight:(
            <NavigationItem
                title='完成'
                // 这里注意: static里面不能使用this调用方法,出现clickFinishButton is not function
                // 参考博客: http://www.jianshu.com/p/2f575cc35780
                // onPress={()=>navigation.state.params.navigatePress()}
                onPress = {()=>this.clickFinishButton()}
            />
        )
      });

    解决方法:

    export default class extends Component {
      static navigationOptions = ({
        navigation,
        screenProps
      }) => ({
        headerTitle: 'List实现多选',
        headerTitleStyle: {
          color: 'white'
        },
        headerStyle: {
          backgroundColor: Color.kMainColor // 设置导航栏的背景颜色,headerTintColor设置无效
        },
        headerRight:(
            <NavigationItem
                title='完成'
                // 这里注意: static里面不能使用this调用方法,出现clickFinishButton is not function
                // 参考博客: http://www.jianshu.com/p/2f575cc35780
                onPress={()=>navigation.state.params.navigatePress()}
                // onPress = {()=>this.clickFinishButton()}
            />
        )
      });
    componentDidMount(){
        // 处理数据源
        this.handlerDataSource();
        this.props.navigation.setParams({navigatePress:this.clickFinishButton})
      }
      // 点击完成按钮
      clickFinishButton = ()=> {
          alert('哈哈');
        //   let data = this.state.dataArr;
        //   let selectResultArr = [];
        //   for (var index in data) {
        //         var element = object[index];
        //         if (element.isSelected) {
        //             selectResultArr.push(element);
        //         }
        //   }
        //   alert(selectResultArr.length);
      }
  • 相关阅读:
    最长不重复子串
    add two nums
    logistic 回归
    threesum
    KNN算法思想与实现
    Python的易错点
    ccf 目录格式转换
    Azure 带宽
    Office 365 如何使用powershell查询邮件追踪
    Azure AD Connect 手动同步
  • 原文地址:https://www.cnblogs.com/pengsi/p/7088401.html
Copyright © 2020-2023  润新知