Skip to content

Could props simple support controlled component #467

Open
@zcma11

Description

@zcma11

when i use the pagination with props { simple: true, current: 1, onChange=() => {...}}

i met a bug, the current is be controlled by me, but the input is not.

the example is

const [current, setCurrent] = useState(1);
const onChange = (page) => {
  if (Math.random() > 0.5) {
    return
  } else {
    setCurrent(page)
  }
}

return (<Pagination
      simple
      current={current}
      onChange={onChange}
      total={50}
/>)

i expected when the current doesn't change, the input value should be 1.
i received "the input value is 2", currentInputValue becomes 2, but current is still 1

i guess the problem is caused by this part.

// handleChange
if (!('current' in this.props)) {
        this.setState({
          current: newPage,
        });
      }
      if (newPage !== currentInputValue) {
        this.setState({
          currentInputValue: newPage,
        });
      }

should the design can be "when found current in props, the currentInputValue can not be changed"?

the following problem is how to due with the change event of input

thank you

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions