2017-03-28 218 views
0

在调度动作反应组件我做了一个功能为onClick事件

handleClick(event, key, value) { 
    event.preventDefault() 
    this.setState({ 
     query:"", 
     key:key, 
     value:value 
    }); 
    this.props.onClick(this.state); 
    console.log("key...." + key ); 
    console.log("val...." + value); 
    } 

这应该被称为当我点击一个链接

onClick={(e) => this.handleClick(e, {key}, {el}) } 

而且使用连接我派遣行动如下

export const mapDispatchToProps = (dispatch) => ({ 

    onClick: (query, key, value) => dispatch(onSearch(query,key, value) 


) 
}); 

但在搜索方法的关键和值来作为undefined.But在handleClick功能我我越来越

key....[object Object] 
val....[object Object] 
+0

是'key'和'el'界定?是否定义了“onSearch”函数? – Aron

+0

是的,他们是被定义的。我需要发布也是? –

+0

不,但请尝试'console.log({key,val})'。这样,你应该能够看到实际对象 – Aron

回答

1

键和值将是未定义的。您需要在setState的回调函数上调用props方法,因为在调用setState之后您不会获得更新的状态值。

handleClick(event, key, value) { 
     event.preventDefault() 
     this.setState({ 
      query:"", 
      key:key, 
      value:value 
     },()=>{ 

      this.props.onClick(this.state); 
     console.log("key...." + key ); 
     console.log("val...." + value); 
    }); 

     } 
0

您调用'onClick'函数的方式是错误的,现在您只传递一个参数而不是三个。

应该这样调用

this.props.onClick(query, key, value);