我有一个子组件和一个父组件,我试图将一些数据从子项冒泡到父组件,如此
子:
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)
);
现在我从第一个警报(孩子)获取数据,但是我从父母那里得到了未定义的数据。知道我错过了什么吗?
答案 0 :(得分:2)
在您父母的渲染方法中:
render(){
return(
<SearchResultRow addToLib={() => this.addToLib()}/>
)};
您的方法不会接收任何数据,而是在没有任何参数的情况下调用this.addToLib()
。
如果您将其更改为:它应该有效:(注意额外的data
)
render(){
return(
<SearchResultRow addToLib={(data) => this.addToLib(data)}/>
)};