求教与ListView有关的一个问题



  • ListView里面的renderRow 里面渲染的是我自定义的组件, 我想在ListView这一级中,调用其中一个组件的函数. 之前类似这种做法都是给自定义组件加一个ref值,然后this.refs.*** 这样处理, 但是ListView管理的却不能这样做,请问有什么办法能实现?



  • 可以在listview那一层,传递一个函数过去

    如果不想事件被每一个row执行,加个标识



  • 感谢你的回复! 我还是没太理解,比如我想实现一个这样的功能: ListView里面有10行,每一行是一个开关组件,这10个开关只能有一个是打开其余9各都是关闭. 我想到的实现方式是: 开关组件接受onPress,改变自身的状态,并且通知到ListView那一级, 这样ListView需要找到之前打开的开关,并调用它自身的关闭函数将其关闭. 我不太明白,如果ListView不能获取到每一行的组件对象,那更复杂的管理做起来岂不是很 麻烦. 如果您实现这个需求,会是什么思路呢? 谢谢了



  • onPress中传入一个标识,比如第几行,然后操作对应的datasource中的对应行数据(注意需要深复制数据后修改),重新setState即可



  • @sunnylqm 好的,我现在就去试试,谢谢了