Как переопределить реквизиты в родной библиотеке реакции

Интересно, как я могу переопределить реквизиты по умолчанию в родной библиотеке реагирования.
Ниже приведена библиотека:

Таким образом, если я хочу вызвать библиотеку, я просто использую

import qrcode from 'qrcodescanner'



<qrcode showMarker = {true} /> // change the showMarker props from false to true 

Я хочу изменить значение по умолчанию с false на true, у кого-нибудь есть решение?

export default class QRCodeScanner extends Component {

  static defaultProps = {
    onRead: () => console.info('QR code scanned!'),
    reactivate: false,
    vibrate: true,
    reactivateTimeout: 0,
    fadeIn: true,
    showMarker: false,
    cameraType: 'back',
    permissionDialogTitle: 'Info',
    permissionDialogMessage: 'Need camera permission',
    checkAndroid6Permissions: false,
    cameraProps: {},
  };

  constructor(props) {
    super(props);
    this.state = {
      scanning: false,
      fadeInOpacity: new Animated.Value(0),
      isAuthorized: false,
      isAuthorizationChecked: false,
      disableVibrationByUser: false,
    };

    this._handleBarCodeRead = this._handleBarCodeRead.bind(this);
  }

  render() {
    return (
      <View style = {[styles.mainContainer, this.props.containerStyle]}>
        <View style = {[styles.infoView, this.props.topViewStyle]}>
          {this._renderTopContent()}
        </View>
        {this._renderCamera()}
        <View style = {[styles.infoView, this.props.bottomViewStyle]}>
          {this._renderBottomContent()}
        </View>
      </View>
    );
  }
}
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
0
0
732
2

Ответы 2

Вы хотели бы разветвить библиотеку и изменить реквизит по умолчанию, как показано ниже:

export default class QRCodeScanner extends Component {

  static defaultProps = {
    onRead: () => console.info('QR code scanned!'),
    reactivate: false,
    vibrate: true,
    reactivateTimeout: 0,
    fadeIn: true,

    // update this default prop to true
    showMarker: true,

    cameraType: 'back',
    permissionDialogTitle: 'Info',
    permissionDialogMessage: 'Need camera permission',
    checkAndroid6Permissions: false,
    cameraProps: {},
  };

  constructor(props) {
    super(props);
    this.state = {
      scanning: false,
      fadeInOpacity: new Animated.Value(0),
      isAuthorized: false,
      isAuthorizationChecked: false,
      disableVibrationByUser: false,
    };

    this._handleBarCodeRead = this._handleBarCodeRead.bind(this);
  }

  render() {
    return (
      <View style = {[styles.mainContainer, this.props.containerStyle]}>
        <View style = {[styles.infoView, this.props.topViewStyle]}>
          {this._renderTopContent()}
        </View>
        {this._renderCamera()}
        <View style = {[styles.infoView, this.props.bottomViewStyle]}>
          {this._renderBottomContent()}
        </View>
      </View>
    );
  }
}

Я не хочу менять реквизит внутри библиотеки. Вместо этого я хочу изменить его в своем коде. У тебя есть решение?

Jond 14.02.2019 06:33

Вы можете переопределить его в своем коде точно так же, как в исходном сообщении. Если вы не хотите делать это каждый раз, когда используете компонент, вы можете создать свой собственный компонент, который просто переопределяет этот реквизит и вместо этого использует свой собственный компонент.

user568754 15.02.2019 00:00

Это нехорошая идея и не рекомендуется,

но если это последнее, что ты можешь сделать, то

перейдите в node_modules, найдите свою библиотеку и измените ее локально.

Примечание:

  • сначала не очень хорошая идея

  • только для обходного пути

  • будут доступны для вас и только для этого проекта

  • если установить библиотеку снова, она будет удалена

Другие вопросы по теме