React Native-弹框存在TextInput,输入框有焦点情况下需要点击两次才可触发事件-解决

image.png

Bug情况描述:React Native项目中,点击按钮A出现弹框浮层,弹框中需要TextInput输入数字,键盘浮起来;这时候点击 取消按钮L 或者 确定按钮R,只是让键盘收起,但是并没有触发 取消 或 确定 的事件,必须要再点击第二次才可以触发。另外,当输入框有焦点的情况下,点击 屏幕任意位置(除了键盘),可使键盘收起隐藏;

期待效果:当输入框输完内容后,光标焦点仍然存在,键盘也未消失,这时候点击一次取消按钮L即可让弹框层和键盘同时隐藏;点击一次确定按钮R内容即可显示到对应位置。

解决方案:
利用ScrollView标签的keyboardShouldPersistTaps={'always'}即可解决,
查看TextInput是否包裹在ScrollView标签中,是则添加keyboardShouldPersistTaps


    
            
             this.refs.alert && this.refs.alert._showModal()}
            />
                 this._confirmValue('nickname', this.state.tempNickname)}
                             cancelClick={() => this._cancelValue('nickname', this.state.nickname)}>
                     this._handleChangeText('tempNickname', text)}
                               value={this.state.tempNickname}
                    />
                
        

你可能感兴趣的:(React Native-弹框存在TextInput,输入框有焦点情况下需要点击两次才可触发事件-解决)