собственный ввод react теряет фокус после повторного рендеринга, как это предотвратить?

#react-native #redux #expo

Вопрос:

как я могу не потерять фокус на вводе текста, если что-то будет передано повторно ?

 import * as React from 'react';
import { StyleSheet, Text, TextInput, View, Pressable, Image, Dimensions } from 'react-native';
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
import { useDispatch, useSelector } from 'react-redux';
import { addName, addProducts, addReleaseDate } from '../../../redux/slice/collection/createCollection';
import ButtonWithoutLoader from '../../ButtonWithoutLoader';
// { getCollectionName } from '../../../redux/reselect';

const { width } = Dimensions.get('window');

const Collection = () => {
  const dispatch = useDispatch();

  const collection = useSelector(state => state.createCollection);

  const handleTextChange = text => {
    console.log(text);
    dispatch(addName(text));
  };

  const ShowScreenIfNoCollectionExists = () => (

    <KeyboardAwareScrollView contentContainerStyle={{flexGrow: 1, backgroundColor: '#fff', justifyContent: 'center', alignItems: 'center'}}>
      <Text style={styles.title}>YOUR TEXT</Text>

      <TextInput key="12" placeholder="YOUR TEXT" value={collection.name} onChangeText={handleTextChange} style={styles.input} />

      <ButtonWithoutLoader title="Weiter" width={250} />
    </KeyboardAwareScrollView>
  );
  
  return (
    <ShowScreenIfNoCollectionExists />
  )
};
 

………………………………………………………………………………………………………………………………………………………………………………………………………………………………

Комментарии:

1. Я думаю dispatch , что в handleTextChange украденном фокусе. Вы можете добавить аргумент, чтобы снова сфокусировать ввод текста после отправки