反応ネイティブアプリでScrollViewのページがあります。最初のロード時に、子コンポーネントは、複数のTextInput's
を完全にうまくレンダリングすると言うことができます。ScrollViewレンダリングされたコンポーネントは、反応のないネイティブでデータなしでレンダリングされますか?
各TextInputには一意のキーがあります。 TextInputフィールドの更新を開始すると、他のコンポーネントが崩壊するだけです。崩壊すると、そのコンポーネントは存在しますが、データは表示されません。 onPressイベントは折りたたまれたコンポーネントで機能しますが、テキストは表示されません。すべてのレンダリングに私が見つけた
一つの方法は、独自のランダムkey
を追加することでしたが、その後のTextInputからの焦点は、優れたユーザーエクスペリエンスではありませんこれは、失われます。
コード:
class App extends React.Component {
constructor(props) {
super(props);
this.state= this.props;
}
buildList(data) {
_.map(data, blog => {
return(
<View key={blog.id}>
<Text>{blog.title}</Text>
<TextInput
placeholder={blog.label}
onChangeText={text => onChangeText(text)}
value={value}
/>
</View>
);
}
}
render() {
const {
data
} = this.state;
return (
<View style={mainStyles.pageWrap}>
<ScrollView style={mainStyles.contentWrap}>
<View>
{
this.buildList(
data
)
}
</View>
</ScrollView>
</View>
);
}
}
どのようにonChangeTextが定義されていますか? –
@AlexanderGuschin、申し訳ありませんが、私はすべての子コンポーネントに 'style = {{flex:1}} 'を追加しなければならないと考えました。 – sahil