callstack / callstack/react-native-paper
[5.14.5] TextInput with multiline inside Portal causes rapid flicker and infinite onChangeText calls [iOS]
- 主要语言
- TypeScript
- 星标
- 14.5k
- 派生
- 2.2k
- 平均合并
- 5 天 23 小时
- 30 天内合并 PR
- 12
描述
### Current behaviour
Typing in a `react-native-paper` `TextInput` with `multiline` **inside a `Portal`** causes rapid flicker and floods `onChangeText` (dozens of calls per second). Removing **either** `Portal` or `multiline` stops the issue.
### Expected behaviour
No flicker; `onChangeText` fires once per user input.
### How to reproduce?
1. Render a multiline `TextInput` inside a `Portal`.
2. Run iOS
3. Focus the field and type characters.
```tsx
import * as React from 'react';
import { Portal, TextInput } from 'react-native-paper';
export default function Repro() {
const [text, setText] = React.useState('');
return (
{
console.count('onChangeText'); // spams rapidly
setText(t);
}}
style={{ minHeight: 120 }}
/>
);
}
```
### What have you tried so far?
- Removing `multiline` → issue gone
- Removing `Portal` → issue gone
### Your Environment
| software | version |
|------------------------|----------|
| ios | x |
| android | x |
| react-native | **0.81.5** |
| react-native-paper | **5.14.5** |
| node | x.x.x |
| npm or yarn | x.x.x |
| expo sdk | N/A |
贡献指南
调研方向
首先,使用提供的 Portal 和 multiline TextInput 示例在 iOS 上重现该问题,然后检查 Portal 和 TextInput 的入口点。当输入不再导致闪烁,并且每次用户输入只触发一次 onChangeText 时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- ios, react-native, typescript
- 领域
- mobile
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 48/100