deanmcpherson / deanmcpherson/react-native-sortable-listview
更改了SortableListView.data对象的值, 数据改变了,但是没有触发列表的重新渲染
- Dominant language
- JavaScript
- Stars
- 909
- Forks
- 225
- PR merge metrics
- No merged PRs in 30d
Description
以下是我的问题, 请各位大神指教一下:
我需要在子组件中更改SortableListView的属性 data 的值,但是更改之后值是变了, 列表却没有触发重新渲染。
1. data 对象是这样的
```
const tagList = {
Web: { id: '5562b415e4b00c57d9b94ac8', title: '前端', name: 'Web', status: true, order: 1 },
Android: { id: '5562b410e4b00c57d9b94a92', title: 'Android', name: 'Android', status: true, order: 3 }
}
```
`tagList[xx].status`表示的是一个开关,我需要在后续的业务代码中更改 `status` 的值,并且让他立即显示出效果。
2. 父组件是这样的
```
export default class Tags extends Component{
state = {
tags: tagList,
order: Object.keys(tagList)
};
redrawList = (item, value) => {
const { tags } = this.state;
tags[item.name].status = value;
this.setState({
tags
})
};
render(){
const { tags, order } = this.state;
return(
{
order.splice(e.to, 0, order.splice(e.from, 1)[0]);
this.forceUpdate()
}}
renderRow={row => {this.redrawList(item, value)}} />}
/>
)
}
}
```
3. 子组件
```
class RowComponent extends Component{
handleChangeTag = (data, value) => {
this.props.changeTagValue(data, value) // 反向触发伏组件重新渲染列表
};
render(){
const { data } = this.props;
return(
{data.title}
this.handleChangeTag(data, value)} />
)
}
}
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.