我有一个组件,可以接收称为周期的对象数组
[
{id: 4, endDate: "2018-06-30T10:00:00+10:00"}
,{id: 3, endDate: "2017-06-30T10:00:00+10:00"}
,{id: 5, endDate: "2017-06-30T10:00:00+10:00"}
]
这是从其父级传递过来的,其父级通过graphql调用接收。 我该如何按降序对道具进行排序并将其传递给子组件以使用。 我尝试过
const arr = [...this.props.periods];
const a2 = arr.sort((a, b) => b.endDate.localeCompare(a.endDate));
this.props.periods = a2
.
.
.(child component)
<Dropdown options={this.props.periods} />
并收到此错误
答案 0 :(得分:0)
您无法通过子组件更新道具,因为道具是只读的。
您可以在父组件中更新状态。
答案 1 :(得分:0)
this.props中的所有属性都是只读的,您应该使用状态
const periods = [...this.props.periods].sort((a, b) =>
b.endDate.localeCompare(a.endDate));
this.setState({periods})
<Dropdown options={this.state.periods} />