React Native - «Не удается прочитать свойство« bool »из неопределенного» из PropTypes.bool - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь использовать пакет узлов для собственного многослайдера реагирования, который я получил от https://github.com/ptomasroos/react-native-multi-slider, но он выдает ошибку «Невозможно прочитать свойство« bool »из undefined». Когда я проследил, откуда произошла эта ошибка, она возникает из строки PropTypes.bool в файле ....

'use strict';

var React = require('react');
var ReactNative = require('react-native');

var {
  PropTypes
} = React;
var {
  View
} = ReactNative;

var BasicMarker = React.createClass({

  propTypes: {
    pressed: PropTypes.bool,
    pressedMarkerStyle: View.propTypes.style,
    markerStyle: View.propTypes.style
  },

  render: function () {
    return (
      <View
        style={[this.props.markerStyle, this.props.pressed && this.props.pressedMarkerStyle]}
      />
    );
  }
});

var mockProps = {
  values: [0],
  onValuesChangeStart: function () {
    console.log('press started');
  },
  onValuesChange: function (values) {
    console.log('changing', values);
  },
  onValuesChangeFinish: function (values) {
    console.log('changed', values);
  },
  step: 1,
  min:0,
  max:10,
  selectedStyle: {
    backgroundColor: 'blue'
  },
  unselectedStyle: {
    backgroundColor: 'grey'
  },
  containerStyle: {
    height:30,
  },
  trackStyle: {
    height:7,
    borderRadius: 3.5,
  },
  touchDimensions: {
    height: 30,
    width: 30,
    borderRadius: 15,
    slipDisplacement: 30,
  },
  markerStyle: {
    height:30,
    width: 30,
    borderRadius: 15,
    backgroundColor:'#E8E8E8',
    borderWidth: 0.5,
    borderColor: 'grey',
  },
  customMarker: BasicMarker,
  pressedMarkerStyle: {
    backgroundColor:'#D3D3D3',
  },
  sliderLength: 280
};

module.exports = mockProps;

Я где-то читал о необходимости специально устанавливать типы пропеллера при использовании более новых версий. Реагировать нативно, поэтому я запустил

npm install --save prop-types

из root моего проекта и добавил строку кода

var PropTypes = require('prop-types');

в верхней части файла вместо предыдущего определение PropTypes, но это не решило мою проблему. Затем он допустил ошибку в строке

pressedMarkerStyle: View.propTypes.style

, сказав, что propTypes не определен. Любые идеи о том, как я должен go об этом?

1 Ответ

1 голос
/ 19 марта 2020

Вы можете исправить эту проблему, сначала изменив импорт следующим образом:

var React = require('react');
var { ViewPropTypes } = require('react-native');
var PropTypes = require('prop-types');

, а затем используйте его следующим образом:

propTypes: {
   pressed: PropTypes.bool,
   pressedMarkerStyle: ViewPropTypes.style,
   markerStyle: ViewPropTypes.style
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...