反应冒泡不起作用

时间:2018-04-12 01:14:08

标签: javascript reactjs ecmascript-6 react-dom

我有一个子组件和一个父组件,我试图将一些数据从子项冒泡到父组件,如此

子:

addToLib(data){
    alert(data);
    this.setState({selectedData : data});
}
...
    render(){
    return(
    <SearchResultRow addToLib={() => this.addToLib()}/>
    )};

父:

CREATE VIEW v_Telecontagem AS
  SELECT
    Fonte.id                   AS id,
    Fonte.nome                 AS fonte_nome,
    Fonte.tipo_fonte           AS fonte_tipo_fonte,
    Telecontagem.id_fornecedor AS telecontagem_id_fornecedor,
    Telecontagem.fornecedor    AS telecontagem_fornecedor,
    Telecontagem.nome          AS telecontagem_nome,
    Telecontagem.id_fonte      AS telecontagem_id_fonte
  FROM Telecontagem
    INNER JOIN Fonte ON Telecontagem.id_fonte = Fonte.id;

CREATE RULE v_Telecontagem_INSERT AS ON INSERT TO v_Telecontagem DO INSTEAD (
  INSERT INTO Fonte (id, nome, tipo_fonte) VALUES (DEFAULT, NEW.fonte_nome, NEW.fonte_tipo_fonte)
  RETURNING id INTO NEW.telecontagem_id_fonte;

  INSERT INTO Telecontagem (id_fornecedor, fornecedor, nome, id_fonte)
  VALUES (NEW.telecontagem_id_fornecedor, NEW.telecontagem_fornecedor, NEW.telecontagem_nome, NEW.telecontagem_id_fonte)
);

现在我从第一个警报(孩子)获取数据,但是我从父母那里得到了未定义的数据。知道我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

在您父母的渲染方法中:

render(){
    return(
    <SearchResultRow addToLib={() => this.addToLib()}/>
)};

您的方法不会接收任何数据,而是在没有任何参数的情况下调用this.addToLib()

如果您将其更改为:它应该有效:(注意额外的data

render(){
    return(
    <SearchResultRow addToLib={(data) => this.addToLib(data)}/>
)};