Добавить массив в Redux для пустого массива - PullRequest
0 голосов
/ 11 апреля 2020

Как поместить данные в «данные» при первом переходе на экран. Работает только при вводе значения в поле поиска.

Это мой код:

  const resData = useSelector(state => state.products.products);
  const [data, setData] = useState(resData);

Функция поиска

const SearchFilterFunction = text => {
    const newData = resData.filter(item => {
      const itemData = item.productName
        ? item.productName.toUpperCase()
        : ''.toUpperCase();
      const textData = text.toUpperCase();
      return itemData.indexOf(textData) > -1;
    });
    setData(newData);
    setText(text);
  };

И TextInput & Flatlist

      <TextInput
        // style={styles.textInputStyle}
        onChangeText={text => SearchFilterFunction(text)}
        value={text}
        underlineColorAndroid="transparent"
        placeholder="Search Here"
      />
      <FlatList
        data={data}

1 Ответ

0 голосов
/ 11 апреля 2020

Я предлагаю использовать useEffect крючок, чтобы поймать resData изменения. Передав resData в массив зависимостей, вы добиваетесь вызова setData при изменении resData.

Попробуйте следующее:

const resData = useSelector(state => state.products.products);
const [data, setData] = useState([]);

useEffect(() => {
   setData(resData);
}, [resData]);

Надеюсь, это поможет!

...