单击子元素时反应获取父元素的状态/数据

时间:2018-08-13 18:01:30

标签: javascript reactjs redux traversal

我有一个父元素li的构造,它包含一个链接和一个超棒的字体i。当我单击i时,我需要将父项的标题(从redux状态)传递给该函数。

  1. 我需要以某种方式遍历DOM树来获取它吗?
  2. 我是否对事件处理程序进行了不同的设置?
  3. 当单击子元素时,如何访问父状态?

    export default class DashContent extends React.Component {
      deleteBase(title) {
        this.props.dispatch(removeBase(title))
      }
    
      render() {
        const baseList = this.props.bases.map(base => (
          <li key={base.title} className="base">
            <Link to={base.title}>{base.title}</Link>
            <i className="fas fa-times" onClick={title => this.deleteBase(title)} />
          </li>
        ));
      }
    
      return (
        <ul>
          {baseList}
          <li>
            <AddBase />
          </li>
        </ul>
      )
    }
    

1 个答案:

答案 0 :(得分:1)

  1. 没有,您不需要遍历任何东西,可以直接在onClick中传递它
  2. 是的,您需要将onClick更改为这样

    onClick={() => this.deleteBase(base.title)}
    

现在您的deleteBase函数中,标题已作为参数传递

  1. 您的第三点没有多大意义,因为您位于同一组件中,因此只有1个局部状态,父元素和子元素都可以访问。但这对您没有用,因为您要访问的标题不是处于本地状态也不是redux状态,而只是base对象本身的属性。