deanmcpherson / deanmcpherson/react-native-sortable-listview

更改了SortableListView.data对象的值, 数据改变了,但是没有触发列表的重新渲染

Open
#163 1 comment 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.