如何在reactjs中检索状态的更新值?

时间:2019-03-29 13:17:35

标签: reactjs

我将状态的初始值(名为side_panel_width)设置为250px,并有一种方法可以在Parent组件中将此side_panel_width设置为新的大小。我从child1组件调用set方法,并在child2组件中使用该状态。但是,当我在child2组件中打印状态值时,它不会更新。意味着我只能看到初始值。

我要做什么?

在父组件中,我的状态名为“ side_panel_width”,并将其设置为150。在父组件中,我有一个set_panel_width方法,当用户在sidePanel_component中调整side_panel的大小时,该方法会更新side_panel_width状态。并将父组件的side_panel_width状态传递给视图组件。

下面是代码,

export default class ParentComponent extends React.PureComponent {
    state = { 
        side_panel_width = 150;}

    set_side_panel_width = (new_size) =>{
        this.setState({side_panel_width: new_size});

    render () {
        return {
            <SidePanelComponent
                side_panel_width = {this.state.side_panel_width}
                set_side_panel_width = {this.set_side_panel_width}/>
            <ViewComponent
                side_panel_width={this.state.side_panel_width}/>}}}

export default class SidePanelComponent extends React.PureComponent {
    render () {
        return {
            <ResizeSlider
                 resize={this.props.set_side_panel_width}/>}}}

export default class ResizeSlider extends React.PureComponent {
    render () {
        resize = (new_size) => {
            this.props.set_side_panel_width(new_size);
        }}}

export default class ViewComponent extends React.PureComponent {
    render () {
        console.log("side_panel_width, this.props.side_panel_width);
    }}

但是当我在viewcomponent中记录side_panel宽度时,我看到了初始值150 ...当我调整侧面板的大小时,side_panel_width发生了变化,但在viewcomponent中没有显示更新的值。我该如何解决?谢谢

0 个答案:

没有答案