Как добавить navigationOptions в функциональный компонент Memoized React? - PullRequest
0 голосов
/ 26 мая 2020

Я использую типы потока и имею функциональный компонент, обернутый памяткой, однако при попытке назначить navigationOptions для реакции-навигации поток просто идет наперекосяк: 1005 * Даже если я наберу приведение к любому, а затем попытаюсь использовать его на моем маршрутизаторе:

/*
Cannot call `createStackNavigator` with object literal bound to `routeConfigMap` because in property `Foo.screen`: Either property `navigationOptions` is missing in  AbstractComponent [1] but exists in  `withOptionalNavigationOptions` [2]. Or property `router` is missing in  AbstractComponent [1] but exists in  `withRouter` [3].Flow(InferError)
*/
const FooStack = createStackNavigator({
  Foo: { screen: FooScreen }
}, stackNavOptions)

Как мне здесь правильно применять типы?

1 Ответ

1 голос
/ 05 июня 2020

Это ожидаемое поведение. Если вы на самом деле отметите React$AbstractComponentStatics, вы увидите, что существует очень мало разрешенных свойств, таких как displayName, который является допустимым. Они даже удалили propTypes, которые, хотя и действительно, не поощряются, поэтому они были удалены.

Чтобы обойти это, вы можете использовать комментарии подавления, чтобы пометить его как ложное срабатывание,

// $FlowExpectedError navigationOptions
Foo.navigationOptions = navigationOptions

Flow поддерживает $FlowFixMe, а начиная с версии 0.125.0, $FlowIssue и $FlowExpectedError по умолчанию для подавления ошибок.

...