Добавление потока в приложение реагирования кажется простым, простой пример показанной ошибки можно увидеть здесь:
Props2 = {
name: string,
}
class _TestComponent extends Component<Props2> {
render() {
return <div>{this.props.name}</div>
}
}
export function TestFunc(props: {}) {
return <_TestComponent/>
}
Это вернет ошибку Cannot create _TestComponent element because property name is missing in props [1] but exists in Props2 [2].
Однако при добавленииMobX
к смеси проверка типов внезапно перестает работать вообще.Когда я пытаюсь создать наблюдателя, поток просто не дает никакой информации о типе:
type Props2 = {
name: string,
}
class _TestComponent extends Component<Props2> {
render() {
return <div>{this.props.name}</div>
}
}
export const TestComponent = observer(_TestComponent);
export function TestFunc(props: {}) {
return <TestComponent/>
}
Показывает No errors!
Если я пытаюсь обновить TestComponent
, чтобы иметь определенный тип:
export const TestComponent:_TestComponent = observer(_TestComponent);
Отображается очень загадочная ошибка: Cannot create TestComponent element because _TestComponent [1] is not a React component.
Означает ли это, что flow и mobx несовместимы друг с другом?Из-за того, что mobx использует функции более высокого порядка, чтобы сделать «свою магию»?