Реагировать / Redux Connect проблемы с ownProps / typcript - PullRequest
0 голосов
/ 07 февраля 2019

При вызове redux connect с опциями, но без OwnProps это вызывает проблемы с машинописью, связанные со встроенными реквизитами, такими как ref.Поэтому, если я пытаюсь:

Родительский компонент:

import MyComponent from './MyComponent';

class ParentComponent extends React.Component<Props, {}> {
  private placeholder: any;

  constructor(props) {
    super(props);
  }
  render() {
    <MyComponent ref={(e: any) => { this.placeholder = e; }} />
  }
}

Мой компонент:

import { doSomethingAction } from 'actions';

interface State { something?: string; }
interface StateProps { someProp: string; }
interface DispachProps { doSomething: () => void }
type Props = StateProps & DispatchProps;

class MyComponent<Props, State> {
  constructor(props) {
    super(props);
    this.state: State = { someProp: false };
  }
  render() {
    return (<div>this.props.someProp</div>);
  }
}

function mapStateToProps(state: Store): StateProps {
  return {
    someProp: state.somePropState
  }
}

function mapDispachToProps(dispach): DispachProps {
  return {
    doSomething: () => dispach(doSomethingAction())
  }
}

// same issue even if third type for OwnProps is added
export default connect<StateProps, DispachProps> (
  mapStateToProps,
  mapDispachToProps,
  null,
  { forwardRef: true }
)(MyComponent)

Я получаю следующую ошибку машинописи для MyComponent:

Тип'{ref: (e: any) => void;} 'отсутствуют следующие свойства из типа «Readonly>»: someProp, doSomething.

Неожиданно он обрабатывает все эти свойства как необходимые собственные свойства.Он выдаст ту же ошибку, даже если регулярно добавляется третий тип для OwnProps.Это ошибка или я что-то упустил.Если это ошибка, то есть ли какой-нибудь элегантный способ преодолеть это, пока она не будет исправлена ​​(я знаю, что могу добавить третий тип для OwnProps как любой, но не думаю, что это такое хорошее решение)?(реагирует на 16.8.0, реагирует на редукцию 6.0.0, @ типы / реагирует на 16.8.2, @ типы / реагирует на редукцию 7.0.1)

...