Невозможно получить доступ к состоянию - PullRequest
0 голосов
/ 26 апреля 2018

Попытка получить доступ к состоянию внутри моих методов, но это всегда null.Может кто-нибудь объяснить мне, что мне нужно сделать, чтобы мои методы ссылались на состояние и почему это нужно сделать?

import * as React from 'react';


interface IProps {
  enabled?:boolean;
}
interface IState {
  itemCount?: number;
}

class ItemCounter extends React.Component<IProps, IState> {
  public state : IState
  constructor(props: IProps) {
      super(props)
      this.state = {
         itemCount: 0
      };

  }
public handleIncrement = () => {
  if(this.state.itemCount != null){
    this.setState({itemCount: this.state.itemCount++});
  }
};
public handleDecrement = () => {
  if(this.state.itemCount != null){
    this.setState({itemCount: this.state.itemCount--});
  }
};
    public render() {
        return (
            <div>
                {this.state.itemCount}
                <button onClick={this.handleIncrement}>Add Item</button>
                <button onClick={this.handleDecrement}>Remove Item</button>
            </div>
        );
    }

}

export default ItemCounter;

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

с использованием ++ или -- для свойства React state - это нет-нет.оба эти оператора изменят данные, которые они используют, что вы никогда не захотите использовать в React state

0 голосов
/ 26 апреля 2018

Вы пропустили определение числа handleIncrement и handleDecrement

public handleIncrement = () => {
  if(this.state.itemCount != null){
    this.setState({itemCount: this.state.itemCount+1});
  }
};
public handleDecrement = () => {
  if(this.state.itemCount != null){
    this.setState({itemCount: this.state.itemCount-1});
  }
};

Edit 6j42kr2j4w

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...