Skip to content

Same prevProps/nextProps as this.props passed to componentDidUpdate / shouldComponentUpdate for nested props #17

@dandv

Description

@dandv

Repro:

import { h, Component } from 'preact';
import linkState from 'linkstate';

class Double extends Component {
  componentDidUpdate(prevProps, prevState) {
    console.log(prevProps.filter, this.props.filter);  // BUG: same
  }
  render() {
    return (
        <p>{this.props.filter.value * 2}</p>
    );
  }
}

export default class App extends Component {
  state = {
    filter: {
      value: 3
    }
  };
  render() {
    return (
      <div>
        <p>Change the number and watch the console. The filter values should be different but are identical.</p>
        <input type="number" onInput={linkState(this, 'filter.value')} />
        <Double filter={this.state.filter} />
      </div>
    );
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions