当前位置: 首页 > 知识库问答 >
问题:

通信子-父反应

皇甫俊雅
2023-03-14
class LocaleSwitcher extends React.Component{


constructor() {
    super();
    this.render = this.render.bind(this);
    this.componentDidMount=this.componentDidMount.bind(this);
    this.state = { languages:[] };
}


render(){


    return (<li>{this.props.selectedLanguage}
        <ul className="dropdown">
            {
                this.state.languages.map(function(result){

                    return (<ListItemWrapper key={result.id}  title={result.text} url="language" />);
                })

            }
        </ul>
    </li>);

}

componentDidMount(){
    var component = this;
    $.get('data/languages',function(result){
        component.setState({languages: result});
    });
}

};
class ListItemWrapper extends React.Component{

constructor() {
super();
this.render = this.render.bind(this);
this.handleClick =this.handleClick .bind(this);
}


 render () {
    console.log("title:" + this.props.title);
    return (<li onClick={this.handleClick}><a href="#">{this.props.title}</a></li>);
}

handleClick () {
    $.get(this.props.url+"?code="+this.props.title,function(result){


/*Insert the code here */

    });
}
};

我现在的问题是,我不知道如何从子组件到父组件进行通信,因为一旦用户选择了一种语言,我想用所选的语言更新下拉列表,所以我需要填充方法handleClick来向父组件发送所选的语言并更新它,但我不知道如何做到这一点。到目前为止,我已经试过了,但没有运气

handleClick () {
    $.get(this.props.url+"?code="+this.props.title,function(result){

this.props.selectedLanguage=this.props.title;

});
}
};

任何帮助都将不胜感激。

共有1个答案

庾鸿飞
2023-03-14

您必须在LocaleSwitcher组件中声明句柄点击,并将其传递给ListItemWrapper组件,与您所传递的选定语言相同。

你也可以通过道具中的事件。

因此,您的LocaleSwitcher组件应该如下所示

 handleClick () {
    $.get(this.props.url+"?code="+this.props.title,function(result){


/*Insert the code here */

    });
}
    render(){


    return (<li>{this.props.selectedLanguage}
        <ul className="dropdown">
            {
                this.state.languages.map(function(result){

                    return (<ListItemWrapper key={result.id}  title={result.text} url="language" handleClick={this.handleClick}/>);
                })

            }
        </ul>
    </li>);

}
     render () {
    console.log("title:" + this.props.title);
    return (<li onClick={this.props.handleClick}><a href="#">{this.props.title}</a></li>);
}
 类似资料:
  • 本文向大家介绍vuejs父子组件通信的问题,包括了vuejs父子组件通信的问题的使用技巧和注意事项,需要的朋友参考一下 父子组件之间可以通过props进行通信: 组件的定义: 1.创建component类:  2.注册一个tagnme: 局部注册: 模板注意事项:  因为 Vue 就是原生的DOM,所以有些自定义标签可能不符合DOM标准,比如想在 table 中自定义一个 tr,如果直接插入 my

  • 问题内容: 我真的是React的新手,我想解决我认为很简单的问题。这是我构建的组件的图片。 拾色组件 我试图完成的工作似乎很琐碎,但实际上,我读过的每一篇解释做什么的文章都告诉我一些不同的东西,而没有一种解决方案有效。它可以分解为:当用户单击标签时,它会构建一个托盘并循环遍历各种颜色以构建颜色按钮。单击颜色按钮时,它需要将单击的颜色传递给其父组件,并运行一个函数来更新其颜色。我已经阅读了有关通量,

  • 本文向大家介绍Angular2 父子组件数据通信实例,包括了Angular2 父子组件数据通信实例的使用技巧和注意事项,需要的朋友参考一下 如今的前端开发,都朝组件式开发模式靠拢,如果使用目前最流行的前端框架Angular和React开发应用,不可避免地需要开发组件,也就意味着我们需要考虑组件间的数据传递等问题,不过Angular 2已经为我们提供了很好的解决方案。 父组件和子组件 接触过面向对象

  • 本文向大家介绍vue2.0父子组件及非父子组件之间的通信方法,包括了vue2.0父子组件及非父子组件之间的通信方法的使用技巧和注意事项,需要的朋友参考一下 1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: 子组件通过props来接收数据: 方式1: 方式2 : 方式3: 这样呢,就实现了父组件向子组件传递数据. 2.子组件与父组件通信 那么,如果子组

  • 将有更多的类(不同的产品)扩展。 当我使用序列化它时, 这是输出: 将引发此异常: java.lang.IllegalArgumentException:意外的标记(VALUE_STRING),应为field_name:缺少包含类型id(类com.shubham.model.product的)的属性“type”,位于[源:n/a;行:-1,列:-1] 我在这里做错了什么?我观察了一下,发现了一个问

  • 本文向大家介绍vue子父组件通信的实现代码,包括了vue子父组件通信的实现代码的使用技巧和注意事项,需要的朋友参考一下 之前在用vue写子父组件通信的时候,老是遇到问题!!! 子组件传值给父组件:   子组件:通过emit方法给父组件传值,这里的upparent是父组件要定义的方法      模板:   在data中定义:switchStatus = true;   方法:     父组件:模板: