【RN框架】拍摄输入未触发RN textInput组件的onChange回调导致传值错误?

搜索输入框由RN的textInput组件实现,拍摄输入后点击搜索,搜索结果依然是输入前的文本。

import React, { useState } from 'react';
import { View, TextInput, Button } from 'react-native';

export default function App() {
  const [input1Value, setInput1Value] = useState('');
  const [input2Value, setInput2Value] = useState('');

  return (
    <View style={{paddingTop:100}}>
<TextInput
value={input1Value}
onChangeText={text => setInput1Value(text)}
/>
  <Button
title="传递值"
onPress={() => setInput2Value(input1Value)}
/>
  <TextInput
value={input2Value}
onChangeText={text => setInput2Value(text)}
/>

  </View>
);
}
阅读 522
1 个回答

302版本上,拍摄输入时RNOH的TextInputComponentInstance::onChange方法中没有正确回调,新版本RNOH没有问题,需要使用规避方案规避。

在@rnoh/react-native-openharmony/src/main/cpp/RNOHCorePackage/ComponentInstances/TextInputComponentInstance.cpp文件中TextInputComponentInstance::onChange方法内加入onChange事件回调,如下代码所示:

void TextInputComponentInstance::onChange(std::string text) {
  m_content = std::move(text);
  if (m_shouldIgnoreNextChangeEvent) {
    m_shouldIgnoreNextChangeEvent = false;
    return;
  }
  m_eventEmitter->onChange(getOnChangeMetrics());
  m_valueChanged = true;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进