如何强制 React 组件重新渲染?

潘卡伊

我们正在开发一个 POC,我们在其中显示属性列表,并在单击属性标题时在引导模式弹出窗口中显示相应的属性详细信息。

我们有以下具有层次结构的 React 组件:

1 属性框

1.1 属性列表

1.1.1 属性信息

1.2 Bootstrap Modal 弹出 HTML 中的 PropertyDetails。

PropertyBox 的 render 方法包​​含以下代码。

render() {
return (
<div id="property-box">
<PropertyListComponent>
<div class="modal fade" id="myModal">
    <div class="modal-dialog modal-lg modal-box-large">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
            </div>
            <div class="modal-body modal-max-height">
                {propertyDetailsElement}
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>
</div>;

在属性详细信息组件中,有两个引导程序 4 个选项卡 1. 概览(默认处于活动状态) 2. 联系我们

问题是,

考虑我通过单击属性标题打开属性详细信息弹出窗口,然后转到联系我们选项卡并关闭弹出窗口。

之后,我单击下一个属性标题以查看其属性详细信息。在这种情况下,将打开弹出窗口,显示相应的属性详细信息,但“联系我们”选项卡显示为活动状态。

所以为了解决这个问题,我尝试使用“componentWillReceiveProps”方法重新渲染 PropertyDetails 组件

class PropertyDetail extends React.Component {

    constructor(props) {
        super(props)
        // in state we have stored the images as well as current index of image and translate value
        this.state = {
            property: this.props.data
        }
    }

    componentWillReceiveProps(nextProps) {
        this.setState({
            property: nextProps.data
        })
    }
    render() {return (<HTML for Proeperty Details>);
    }
}

我已经交叉验证了每次单击 PropertyTitle 打开弹出窗口时是否都调用了“componentWillReceiveProps”方法,是的,每次都会调用它。但是问题没有解决。

我期待每次打开属性详细信息弹出窗口时,默认活动选项卡应该是概览选项卡。

有什么解决办法吗?

亲爱的朱奈德

有两种方法可以实现这一点。

1) 当您更改属性时,添加一个名为的默认函数

componentWillUnMount 它将从 dom 中删除组件并重置其属性

或者你可以使用

在您的组件中,您可以调用this.forceUpdate()方法来强制重新渲染。

2)第二个是在每次更改时向组件传递一个键,property它会更新传递给组件的键,所以每次打开一个属性新键,将被传递,新的组件实例将被打开,你不会再遇到这个问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React高阶组件会强制重新渲染已包裹的组件

来自分类Dev

如何避免在React中重新渲染组件?

来自分类Dev

React.js如何重新渲染组件?

来自分类Dev

强制重新渲染组件

来自分类Dev

如何在重新渲染的react组件中保留数据?

来自分类Dev

在重新渲染父组件时,React如何重用子组件/保持子组件的状态?

来自分类Dev

反转存储在State中的数组并不强制重新渲染React中的组件

来自分类Dev

React / Redux 组件重新渲染

来自分类Dev

当父组件重新渲染时,使用 react-redux 的子组件的行为如何改变?

来自分类Dev

当父状态改变时,如何更新(重新渲染)React中的子组件?

来自分类Dev

ionic-react如何在组件重新渲染时使用<CreateAnimation>设置动画?

来自分类Dev

如何在React Native中不使用任何API调用的情况下重新渲染组件?

来自分类Dev

如何在不重新渲染的情况下附加react-native组件以进行查看?

来自分类Dev

在React中的事件上调用setState之后如何重新渲染嵌套组件

来自分类Dev

状态更改后,React不重新渲染,我该如何设置子组件的setState?

来自分类Dev

当react js中的任何状态发生变化时,如何停止重新渲染子组件?

来自分类Dev

强制反应功能组件触发重新渲染

来自分类Dev

React:在容器内如何将组件渲染到另一个组件而不重新渲染其他组件?

来自分类Dev

在AJAX请求后重新渲染React组件

来自分类Dev

React挂钩:父组件无法重新渲染

来自分类Dev

派遣Redux Thunk重新渲染React组件

来自分类Dev

Mobx不会重新渲染React组件

来自分类Dev

React功能组件中的重新渲染逻辑

来自分类Dev

ReactiveVar不重新渲染React组件

来自分类Dev

在 React 中重新渲染 AppBar 组件

来自分类Dev

React/Redux 组件不会重新渲染

来自分类Dev

不需要的 React 组件重新渲染?

来自分类Dev

React 重新渲染重置组件的悬停状态

来自分类Dev

当使用React Router在ReactJS中渲染参数组件时,如何避免不必要地重新渲染HOC组件

Related 相关文章

  1. 1

    React高阶组件会强制重新渲染已包裹的组件

  2. 2

    如何避免在React中重新渲染组件?

  3. 3

    React.js如何重新渲染组件?

  4. 4

    强制重新渲染组件

  5. 5

    如何在重新渲染的react组件中保留数据?

  6. 6

    在重新渲染父组件时,React如何重用子组件/保持子组件的状态?

  7. 7

    反转存储在State中的数组并不强制重新渲染React中的组件

  8. 8

    React / Redux 组件重新渲染

  9. 9

    当父组件重新渲染时,使用 react-redux 的子组件的行为如何改变?

  10. 10

    当父状态改变时,如何更新(重新渲染)React中的子组件?

  11. 11

    ionic-react如何在组件重新渲染时使用<CreateAnimation>设置动画?

  12. 12

    如何在React Native中不使用任何API调用的情况下重新渲染组件?

  13. 13

    如何在不重新渲染的情况下附加react-native组件以进行查看?

  14. 14

    在React中的事件上调用setState之后如何重新渲染嵌套组件

  15. 15

    状态更改后,React不重新渲染,我该如何设置子组件的setState?

  16. 16

    当react js中的任何状态发生变化时,如何停止重新渲染子组件?

  17. 17

    强制反应功能组件触发重新渲染

  18. 18

    React:在容器内如何将组件渲染到另一个组件而不重新渲染其他组件?

  19. 19

    在AJAX请求后重新渲染React组件

  20. 20

    React挂钩:父组件无法重新渲染

  21. 21

    派遣Redux Thunk重新渲染React组件

  22. 22

    Mobx不会重新渲染React组件

  23. 23

    React功能组件中的重新渲染逻辑

  24. 24

    ReactiveVar不重新渲染React组件

  25. 25

    在 React 中重新渲染 AppBar 组件

  26. 26

    React/Redux 组件不会重新渲染

  27. 27

    不需要的 React 组件重新渲染?

  28. 28

    React 重新渲染重置组件的悬停状态

  29. 29

    当使用React Router在ReactJS中渲染参数组件时,如何避免不必要地重新渲染HOC组件

热门标签

归档