React Native - Serangkaian laras dalam AsyncStorage

Violet 06/18/2018. 0 answers, 22 views
javascript android android reactjs react-native mobile

Saya telah mencuba ini selama beberapa hari, apa yang saya targetkan adalah memaparkan keadaan dalam bentuk array tersarang dan simpan pada masa yang sama menggunakan AsyncStorage. Saya fikir untuk memaparkan keadaan tunggal dan simpan juga, tetapi dengan array tersarang ia tidak akan berfungsi dan tidak ada kesilapan.

Berikut adalah sasaran saya:

Sasaran

"Nama" dan "Harga" sepatutnya datang dari api saya, tetapi demi kesederhanaan saya hanya akan menggunakan pelbagai mudah tanpa api.

Berikut adalah kod saya:

Store.js

const isAndroid = Platform.OS == "android";
const viewPadding = 10;

export default class Store extends Component {
    constructor(props) {
        super(props);
        this.state = {
          tasks: [{
            id: "Ford" ,
            price: "123"
          }],
          text: "",
        }
    }

  changeTextHandler = (text) => {
    this.setState({ text: text });
  };

  addTask = () => {
    let notEmpty = this.state.text.trim().length > 0;

    if (notEmpty) {
      this.setState(
        prevState => {
          let { tasks, text, id, price } = prevState;
          return {
            tasks: tasks.concat({ key: tasks.length, text: text, id: id, price: price }),
            id: id,
            price: price,
            text: "",
          };
        },
        () => Tasks.save(this.state.tasks)
      );
    }
  };

  deleteTask = i => {
    this.setState(
      prevState => {
        let tasks = prevState.tasks.slice();

        tasks.splice(i, 1);

        return { tasks: tasks };
      },
      () => Tasks.save(this.state.tasks)
    );
  };

  componentDidMount() {
    Keyboard.addListener(
      isAndroid ? "keyboardDidShow" : "keyboardWillShow",
      e => this.setState({ viewPadding: e.endCoordinates.height + viewPadding })
    );
    Keyboard.addListener(
      isAndroid ? "keyboardDidHide" : "keyboardWillHide",
      () => this.setState({ viewPadding: viewPadding })
    );
    Tasks.all(tasks => this.setState({ tasks: tasks || [] }));
  }

  render() {
    return (
               index.toString()}
          renderItem={({ item, index }) =>                                                                                    {item.id}
                        {item.price}
                        {item.text}
                                                

No Answers Yet

Related questions

Hot questions

Language

Popular Tags