繁体   English   中英

React-Native —在组件和类之间传递数据

[英]React-Native — Passing data between a Component and a Class

我正在努力使文件之间传递数据,特别是在React-Native组件和类之间传递数据。 目的是将数据从组件传递到处理API调用的类。 先感谢您。

我的问题是:

  • 如何将数据从Component传递到Class以及从Class传递到Component?
  • AsyncStorage在这种情况下是否可以工作?

伪码

第一

  • 将数据从Component中的this.state传递给Class
  • 接收Class中的数据并执行某些操作
  • 将数据从类中的this.data传递给组件
  • 在组件中接收数据并执行某些操作

第二

  • 从类中的函数检索Component中的数据
  • 从组件检索类中的数据

Component.js

该文件将积极生成数据到Class.js

import React, { Component } from 'react';
import {
    Text,
    View,
} from 'react-native';

// Custom ***********************************************************************
let Class = require('./Class')

export class Component extends Component {
    constructor(props) {
        super(props);

        this.state = {
            parent: "Parent data", // Access to this in the Class.js
            child: null,
        }
    };

    _componentData = () => {
        let componentData = "Func component data." // Access to this in the Class.js
        return componentData
    }



    render() {
        return(
            <View>
            </ View>
        );
    }
};

类.js

该文件将从Component.js接收数据并处理API调用。

import Component from './Component'

class Class {
    constructor() {
        this.data = {
            component: null,
            class: "Class data" // Access to this in the Component.js
        }
    }

    static _classData = () => {

        let classData = "Func class data" // Access to this in the Component.js
        return classData
    }

};

module.exports = Class;

您的代码很复杂,但是据我了解,您想从另一个页面获取数据,我曾经在一个项目中完成过工作
主文件

   constructor(props) {
    super(props);

    this.state = {                   
        superBasket: []
    };


}
static basketUpdater(newItems) {
    let basket = context.state.superBasket;

    this.setState({superBasket: newItems});


}

我将main.basketUpdater作为道具发送到第二个文件

 this.props.basketUpdater(basket);

如果碰到一个例子,这也会引起突变,我很乐意解决

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM