React Native DeviceEventEmitter keyboardWillShow停止工作

时间:2016-05-13 11:02:16

标签: javascript react-native

升级到0.26.0-rc版本后,在iOs上这一行:

DeviceEventEmitter.addListener('keyboardWillShow', (e)=>this.updateKeyboardSpace(e));

什么都不做。键盘打开时,永远不会调用updateKeyboardSpace方法。

我正在导入DeviceEventEmitter:

import React from 'react';
import {DeviceEventEmitter}  from 'react-native';

我从版本0.21升级,它在那里工作正常。

2 个答案:

答案 0 :(得分:10)

It seems like you can not use this kind of event listener any more. 这似乎是handled by the Keyboard component now,它使用本机库。对于iOS it is defined here,事件名称似乎相同;但是,我找不到Android实现。您需要测试这是否有效,但对于iOS,这应该可以解决问题:

import {Keyboard}  from 'react-native';
Keyboard.addListener('keyboardWillShow', (e)=>this.updateKeyboardSpace(e));

修改

API解释只是内部的。对于正常使用,可以使用callbacks on the ScrollResponderYou could use either onKeyboardWillShowonKeyboardWillHide。 ScrollResponder Mixin用于ScrollViewListView,因此您可以在那里使用此道具。

I did a small example on github.

答案 1 :(得分:5)

在Android上,您可以使用这两个事件:

onDestroy()

在0.26.0上测试