当前位置: 首页 > 面试题库 >

在两个同级React.js组件之间传递数据

江温书
2023-03-14
问题内容

我在页面上有一个组件的两个实例(搜索字段),在它们之间有另一个组件(进行服务器调用的按钮),例如:

ReactDOM.render(

    <table>

    <tbody>

        <tr>

            <td><CardSearch items={ cards } placeholder="Card 1 here" /></td>

            <td><RunOnServer url="py/comparecards" /></td>

            <td><CardSearch items={ cards } placeholder="Card 2 here"/></td>

        </tr>

    </tbody>

    </table>,

    document.getElementById('root')

);

我要做的只是将一个未修改的参数从CardSearch字段传递到RunOnServer按钮,但是如果简单的话,我该死的。据此,我可以使用this.state.var作为道具,但是这样做可以在编译代码时给我’undefined.state.var’。React的官方文档并不出色。他们只是告诉我自己动手使用Flux,这似乎很愚蠢……我不需要全新的架构将简单的变量从一个组件传递到另一个组件。

我还尝试在正在执行渲染的文件中制作局部变量,但它们会作为props传递给组件,并且您不能在组件中修改props。


问题答案:

我创建了一个jsfiddle,其中包含有关如何使用父组件在两个组件之间共享变量的示例

class Parent extends React.Component {
    constructor(props) {
        super(props);
        this.state = {shared_var: "init"};
    }

    updateShared(shared_value) {
        this.setState({shared_var: shared_value});
    }

    render() {
        return (
            <div>
                <CardSearch shared_var={this.state.shared_var} updateShared={this.updateShared} />
                <RunOnServer shared_var={this.state.shared_var} updateShared={this.updateShared} />
                <div> The shared value is {this.state.shared_var} </div>
            </div>
        );
    }
}

class CardSearch extends React.Component {
    updateShared() {
        this.props.updateShared('card');
    }

    render() {
        return (
            <button onClick={this.updateShared} style={this.props.shared_var == 'card' ? {backgroundColor: "green"} : null} >
            card
            </button>
        );
    }
}

class RunOnServer extends React.Component {
    updateShared() {
        this.props.updateShared('run');
    }

    render() {
        return (
            <button onClick={this.updateShared} style={this.props.shared_var == 'run' ? {backgroundColor: "green"} : null}>
            run
            </button>
        );
    }
}


ReactDOM.render(
  <Parent/>,
  document.getElementById('container')
);


 类似资料:
  • 问题内容: 我是React的新手,我想问一个战略问题,关于如何最好地完成必须在同级组件之间传递数据的任务。 首先,我将描述任务: 假设我有多个组件,它们是一个单亲的子代,它们通过数组动态地向下传递选择框。每个框在其初始状态下具有完全相同的可用选项,但是一旦用户在一个框中选择了某个特定选项,则必须将其作为所有其他框中的选项禁用,直到将其释放。 这是(傻)代码中的相同示例。(我用作创建选择框的简写。)

  • 问题内容: 我正在以这种方式制作包含3个子组件的组件: 主要组成部分包含英雄列表。标头组件包含两个按钮,用于将主组件上的视图切换到列表或网格视图。 我现在遇到的问题是将数据从标头组件传递到主组件。因此,当我单击网格按钮时,主要内容上的视图应更改为网格视图,与行视图相同。 如何在角度1.5的子组件之间传递数据? 问题答案: 成分法 我建议您与Angular 2组件方法保持一致,并使用输入 / 输出方

  • 问题内容: 我有一个调用会弹出一个的,以便用户可以选择目录。这些都是单独的类。从中传递值的正确方法是什么,以便我可以在中显示目录的路径? 编辑:更新了问题。 问题答案: 这是一个不完整的示例,但我想可以使您了解如何实现所需的目标。重要的一点是引用要在其中进行选择的属性,例如 参见下面如何将其放置在代码中: 希望对您有所帮助,对不起您没有提供完整的示例。 编辑 本质上,我们没有将任何参数传递给Abs

  • 请帮帮我。我试图在谷歌找到答案,但无法正确获得。

  • 问题内容: 我有两个 -我有和同赛格瑞“模式” -我有与(回FirstVC): 我创建的委托为: 下一个: 我的函数,在此函数中,我的委托用作: FirstVC: 请帮助我解决这个问题。 问题答案: 1)您需要将委托设置为prepareForSegue: 更新: 2)设为可选

  • 我对如何在两个模型之间传递数据有疑问。 所以我想把状态从单元传递到主模型,并在那里进行反应。例如发送请求。