Как использовать ref, пока я использую connect () в Redux с машинописью? - PullRequest
0 голосов
/ 25 февраля 2020

Я иногда застреваю на проблеме.

class AddUser extends React.Component<ModalProps, ModalState> {
  state: ModalState = {
    isShow: false
  };

  showModal = () => {
    this.setState({ isShow: true });
  };

  searchUser = ( value : string) => {
    this.props.updateUser(value);
  }

  render() {
    return (
      <Modal
        title="Add User"
        visible={this.state.isShow}
        onCancel={() => this.setState({ isShow: false })}
        onOk={() => this.setState({ isShow: false })}
      >
        <Input.Search allowClear onSearch={value => this.searchUser(value)}/>
      </Modal>
    );
  }
}

const mapStateToProps = (state: IState) => ({
  user : state.user
})

export default connect(mapStateToProps, {addUserGroupByUsername, updateUser}, null, {forwardRef : true})(AddUser);

Это компонент класса, подключенный к хранилищу Redux.

Я хочу получить его в компоненте отца:

private modalElement: React.RefObject<>;
  constructor (props: GroupProps) {
    super(props);
    this.modalElement = createRef();
}

Но типа Adduser здесь стал значением, а не типом. Как я могу это исправить?

Ошибка здесь:

    Type 'RefObject<any>' is not assignable to type '<T>() => RefObject<T>'.
  Type 'RefObject<any>' provides no match for the signature '<T>(): RefObject<T>'.  TS2322

    58 |   constructor (props: GroupProps) {
    59 |     super(props);
  > 60 |     this.modalElement = React.createRef<AddUser>();
       |     ^
    61 |   }

Я не уверен, какой тип использовать здесь?

...