Как сделать так, чтобы средство выбора в реактивно-родном обновлялось вместе с ключами AsyncStorage? - PullRequest
0 голосов
/ 26 сентября 2019

В настоящее время я делаю приложение, использующее реагирующую натуру с реагирующим нативным материалом для моего сборщика.Проще говоря, мое приложение предназначено для магазина или чего-то еще, так что вы можете add items, remove items (CRUD), и я хочу, чтобы мой сборщик был в курсе моего элемента в базе данных AsyncStorage.

Все в порядкено мне пришлось заново открыть приложение, чтобы получить новый элемент, который я только что добавил с помощью функции «добавить элемент» (или навигации).Я использую экспо, реагирующая навигация.

Вот мое приложение: https://ibb.co/qF3vjTt

Вот моя навигация "Добавить элемент": https://ibb.co/jkdSh04 Всякий раз, когда я нажимаю ОК (первый хорошо, не возражаю против второго), он добавит элемент в БД, но значение моего выбора не обновляется.https://ibb.co/Mhtrqkd Как я уже упоминал ранее, мне пришлось заново открыть приложение, чтобы оно обновлялось в значении выбора.

Вот мой js-код "add items" (снова. Он работает для добавленияitem)

  tambah = async () => {
    let data = {
      nama: this.state.namaBarang,
      harga: this.state.harga,
      tipe: this.state.tipe
    };
    let value = await AsyncStorage.getItem(data.nama.toLowerCase());
    if (value != null) return alert("Barang sudah ada!");
    await AsyncStorage.setItem(data.nama.toLowerCase(), JSON.stringify(data));
    this.props.navigation.goBack();
    alert(`${data.nama} berhasil ditambahkan.`);
  };

Вот код JSX

<Button title="OK" onPress={this.tambah} />

Вот код моей основной вкладки

  constructor(props) {
    super(props);
    this.state = { daftarBarang: [] };
  }
  loadBarang() {
    const data = AsyncStorage.getAllKeys().then(keys => {
      const stop = keys.length;
      const index = keys.toString().split(",");
      for (let i = 0; i < stop; i++) {
        this.state.daftarBarang[i] = { value: index[i] };
      }
    });
  }
// ......
return (
<Dropdown onPress={this.loadBarang()} label="Pilih Produk..." data={this.state.daftarBarang} />
// ......
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...