在React中将状态数据从一个组件传递到另一个组件

阿耶莎·尤尼斯(Ayesha Younis)

我有两个组件,一个组件用于从两个输入字段获取JSON数据,另一个组件用于显示收集的数据并将其用于不同的目的。从JSON文件获取数据后,我将它们设置为第一个组件的状态。

我的问题是如何将在第一个组件中设置为状态的数据发送到另一个组件,以便在第二个组件中以表格的形式显示数据。

第一部分:

export class comp extends Component {
    constructor(props) {
        super(props);
        this.state = {
            uploadfile1:null,
            uploadfile2:null
        }
        this.readFile = this.readFile.bind(this);
       
    }

    readFile(e) {

        {/*Reading JSON Files*/}

        const file = e.target;
        const fileId = file.id;

        if (/\.(json)$/i.test(file.files[0].name) === false) {
            alert("Not valid JSON file!");
        } 
        else {
            const fileReader = new FileReader();
            fileReader.readAsText(file.files[0], "UTF-8");

            fileReader.onload = () => {
                console.log(fileReader.result);
                const data = JSON.parse(fileReader.result);
              
                this.setState({
                    ['upload' + fileId]: data
                })
            };
        } 
    }
    
    render() {
        return (
            <div className="new-audit-content-wrapper">
               
                <input onChange={this.readFile} type="file" id="file1" className="inputfile"/>
                <label htmlFor="file1">Browse for files</label>

                <input onChange={this.readFile} type="file" id="file2" className="inputfile"/>
                <label htmlFor="file2">Browse for files</label>
                          
            </div>
        )
    }
}

第二部分;

export class table extends Component {
    render() {
        return (
            <div className="wrapper">
                       
                        <thead className="table-head">
                            <tr className="table-head-cols">
                                <th className="col-1">Seq#</th>
                                <th className="col-2">Data Audit Row #</th>
                            </tr>
                        </thead>

                        <tbody className="table-body">
                            <tr className="table-body-cols">
                                <td className="table-body-col-1">1</td>
                                <td className="table-body-col-2">3</td>
                            </tr>
                            
                        </tbody>
                         
            </div>
        )
    }
}

只是必须使用Props将数据从第一组件状态传递到第二组件?我不知道确切的解决方案,因为我是新来的反应者。

谢谢

扎克·罗森鲍尔(Zac Rosenbauer)

您需要将数据作为道具传递,并将“第二个组件”包括为“第一个组件”的子代。

render() {
        return (
            <div className="new-audit-content-wrapper">
               
                <input onChange={this.readFile} type="file" id="file1" className="inputfile"/>
                <label htmlFor="file1">Browse for files</label>

                <input onChange={this.readFile} type="file" id="file2" className="inputfile"/>
                <label htmlFor="file2">Browse for files</label>
                
                {/* Add the table below, similar to the example */}
                <Table data={this.state.uploadFile1} />
                     
            </div>
        )
    }

我不知道您是否在遵循示例,但是您已经直观地(或开始走路..)进入一种模式:https : //medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在React中将数据从一个函数传递到另一个函数

如何在React或React-Redux中将数据从一个组件传递到另一个组件?

React.js-将状态值从一个组件传递到另一个

在React中将状态从一个组件设置为另一个组件的最佳实践方法

如何将数据从一个组件传递到另一个组件以进行编辑?

将状态从一个React组件传递到另一个

在Angular 5中将模型从一个组件传递到另一个组件

将数据从一个组件传递到另一个组件

将数据从一个组件传递到另一个Vuejs

如何正确地将道具状态从一个组件传递到另一个组件?

在React中将click事件从一个类组件传递到另一个

在ReactJs中将状态从一个组件传递到另一个组件

如何在React中将数据值从一个子组件传递到另一个子组件?

使用Formik在React中将数据从一个组件传递到另一个组件

在React中将类名从一个组件传递到另一个组件

React-如何将API数据从一个组件传递到另一个js文件中的另一个组件?

将数据从一个组件传递到另一个 Angular 2

将数据从一个组件传递到另一个组件

如何在 Angular 5 中将服务数据从一个组件传递到另一个组件

React Native - 将数据从一个组件传递到另一个

如何在 React 中将数据从单击的组件从一个路由传递到另一个路由?

将状态从一个组件传递到另一个无状态组件

如何在 React 中将静态数据从一个组件传递到另一个组件?

在 React 中将状态数组从一个组件传递到另一个组件

在 React 中将 onClick 值从一个组件传递到另一个组件

将错误数据从一个组件传递到另一个组件

如何在ts文件中将数据从一个组件传递到另一个组件?

如何在反应中将布尔值从一个组件传递到另一个组件?

如何在 Vue 中将产品数据从一个组件传递到另一个组件?