Skip to content

Could props simple support controlled component #467

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