gpt4 book ai didi

javascript - react .js : Why is there no componentDidRender event?

转载 作者:数据小太阳 更新时间:2023-10-29 06:01:42 26 4
gpt4 key购买 nike

我刚开始使用 React,有几次我在想:“为什么没有 componentDidRender 事件?”。

假设我有一个将表格呈现给 DOM 的组件,我想使用 bootstrap-sortable在此表上允许用户根据他想要的任何列进行排序。在 bootstrap-sortable 的情况下,您需要在绘制表格后运行 $.boostrapSortable() 以初始化插件。

在我看来,React 组件上有两个处理程序可以合理地考虑用于此目的:

  • componentDidMount:这不起作用,因为 DOM 在执行的这个点似乎没有更新。

  • componentDidUpdate:这可能有效,但不会在初始渲染时触发。

我并不是说 React 实际上缺少 componentDidRender 函数,因为我认为对于为什么没有它存在一个完全合乎逻辑的解释。我只是问是否有人可以解释为什么不存在这样的功能,以及处理上述情况的“React 方式”是什么。

最佳答案

componentDidMount 中,您可以执行: this.getDOMNode() 以获取对该组件的底层 DOM 的引用。因此,如果您确实想将已安装的组件与 jQuery 一起使用,您可以这样做:

componentDidMount: function() {
$(this.getDOMNode());
}

http://facebook.github.io/react/docs/working-with-the-browser.html

这是一个显示 jQuery 作用于 React 组件的 DOM 节点的 fiddle :

http://jsfiddle.net/sa5e88ys/1/

如您所见,它按预期向 div 添加了边框。如果您仍然遇到问题,我想可能是您使用的插件而不是 jQuery 或 React?

关于javascript - react .js : Why is there no componentDidRender event?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27688311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com