今天在发现React Native TextInput中粘贴公众号的标题时,粘贴后文字特别大,似乎把格式一起粘贴过来了。
发现在粘贴文本的时候,系统会提示粘贴纯文本还是带格式的文本,我的安卓上默认是带格式的文本,这对普通input 很不友好。查了一圈资料,以及问了chatgpt , 都没有给出一个优雅可行的方案。
后来突然发现@react-native-clipboard/clipboard 中可以读取和写入剪切板,但是也没提供清除格式相关的接口,默认就是字符串。
于是灵机一动,如果一进入APP,就读取剪切板文字,在写回去,是不是就变成纯文本了?试了一下还真是,记录一下。
似乎刚进入可能读不到,加个延时,一般到粘贴的时候至少也要1s 吧。
import Clipboard from '@react-native-clipboard/clipboard'; function App(): JSX.Element { useEffect(() => { const subscription = AppState.addEventListener('change', nextAppState => { if (nextAppState === 'active') { console.log('App has come to the foreground!!'); setTimeout(async () => { const text = await Clipboard.getString(); if (text) { Clipboard.setString(text); } }, 1000); } }); return () => { subscription.remove(); }; }, []); return <Main/> }