反应原生 |如何使用 Typescript 访问键盘的 endCoordinates 并重新组合

Posted

技术标签:

【中文标题】反应原生 |如何使用 Typescript 访问键盘的 endCoordinates 并重新组合【英文标题】:React Native | How access to endCoordinates of Keyboard using Typescript and recompose 【发布时间】:2019-07-01 18:34:22 【问题描述】:

所以我在我的 react native 应用程序中使用 recompoose 和 typescript,并尝试访问键盘的 endCoordinates 以获取键盘高度。我关注了this 文章和post,但我无法访问 endCoordinates,它始终未定义。

这是我尝试过的:

const withLifeCycle = lifecycle<Handlers, > (
     componentDidMount() 
        // @ts-ignore
        this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this.props._keyboardDidShow)
,
 componentWillUnmount() 
   // @ts-ignore
   this.keyboardDidShowListener.remove();
 
)    


interface Handlers 
  _keyboardDidShow: (e:any) => void;

// WrappedProps have some other props for some other part of codes

export const enhance = compose<WrappedProps, Props>(
withHandlers<
Props,

>(
  _keyboardDidShow: (e) => () =>
     console.log(e.endCoordinates) // This is Undefined
   
 ),
 withLifeCycle
);

我认为问题在于我需要将keyboardDidShow事件类型传递给方法,因为e对象没有任何endCoordinates

【问题讨论】:

【参考方案1】:

react-native导入KeyboardEvent

const _keyboardDidShow = (props: KeyboardEvent)

const endCoordinates = props;

【讨论】:

以上是关于反应原生 |如何使用 Typescript 访问键盘的 endCoordinates 并重新组合的主要内容,如果未能解决你的问题,请参考以下文章

在 onPress 中反应原生 Typescript Formik 的 handleSubmit 类型

我如何访问 iOS 项目的 NSUserDefault 以做出原生反应?

反应原生 fbsdk 我如何通过服务器获得长期访问令牌

使用 Swift 反应原生自定义 UI 组件:如何在事件中访问 reactTag

我如何在反应原生 webview 中从网页访问当前位置

在自定义组件中反应原生访问 refs