为了账号安全,请及时绑定邮箱和手机立即绑定

react 中的 componentDidMount 无法获取真实dom

react 中的 componentDidMount 无法获取真实dom

慕姐4208626 2019-03-21 18:15:58
在 render 中设置 ref 后,componentDidMount 中无法获取真实节点,具体代码如下,请指教?export default class Content extends Component{  componentDidMount() {    console.log(this.p);  }  render() {    const arr = [{content:'内容一'},{content:'内容二'},{content:'内容三'}];        const domP = arr.map((item,i) => {      return <p ref={(dom) => this.p = dom} key={i}>{item.content}</p>    });    retuen (      <div>        {domP}      </div>    );  }}
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

先说原因:map方法遍历数组导致this.p被不断的重新赋值,所以最后在componentDidMount中拿到的永远都是数组最后一次遍历创建的dom节点。

提供解法:


export default class Content extends Component{

  componentDidMount() {

    console.log(this.p0);

    console.log(this.p1);

    console.log(this.p2);

  }


  render() {

    const arr = [{content:'内容一'},{content:'内容二'},{content:'内容三'}];

    

    const domP = arr.map((item,i) => {

      return <p ref={(dom) => this['p' + i] = dom} key={i}>{item.content}</p>

    });

    retuen (

      <div>

        {domP}

      </div>

    );

  }

}


查看完整回答
反对 回复 2019-04-09
  • 1 回答
  • 0 关注
  • 737 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信