// 外面连的是model的数据
<Main>
<Inner data={dataSource}/>
</Main>
// Inner 结构大致如下:
this.state={
status="ALL"
}
...
<Select value={this.state.status} onChange={this.statusChange}>
<Option value="ALL">所有</Option>
<Option value="1">待审核</Option>
</Select>
// <Inner />
里有select
筛选框, 筛选框的值放在state
里。
// 切换路由的时候,select
的值会被重置,这是正常的。
// 但是!! 如果我点击当前路由,是select
里的state
不会被重置,这时候就很诡异了。。。
这是从其他路由切过来 ↓↓
`select`下拉选择其他值, 再次点击侧边的当前路由, 页面数据刷新(触发了`subscriptions`)
但是Inner残留了之前的`state` ↓↓
是不是一定要把下拉这个state
放到model
里整体控制才能解决这个问题??
现在的解决办法是: 在
model
里设置一个key
, 这个key
是后面组件的<Inner />
的key
.每次触发
subscriptions
, 就更改这个key
, 强制重置组件。各位有好的办法可以说下,现在这个办法感觉有点粗暴。