TS和反应状态-类型'RangeModifier'的参数不能分配给类型的参数

时间:2020-03-10 10:43:58

标签: reactjs typescript

enter image description here

我收到上述错误,我真的不明白我在问什么。

我有一个叫做state的类型,我像下面这样传递,我认为它是在后面。

type State = {
  from: undefined,
  to: undefined,
  range?: object,
}

我将其设置为可选,因为在构造函数中未设置范围状态,因为不需要它。

  constructor(props) {
    super(props);

    this.state = {
      from: undefined,
      to: undefined,
    };

    this.handleDayClick = this.handleDayClick.bind(this);
  }

然后在下面的方法中进行设置,在我添加到问题的屏幕截图中出现错误的地方。

handleDayClick(day) {
  const range = DateUtils.addDayToRange(day, this.state);
  const { handleDateUpdate } = this.props;

  handleDateUpdate(range);
  this.setState(range);
}

我真的不知道如何解决此错误。我是TS的新手,并且发现错误消息非常难以理解。

2 个答案:

答案 0 :(得分:1)

setState接受一个对象作为参数:

this.setState({to: range.to, from: range.from});

答案 1 :(得分:0)

您要将整个状态对象设置为存储在range中的对象,而只想设置range属性。语法如下:

this.setState({ range });