使用导航器弹出时Listview空白

时间:2017-01-21 07:08:24

标签: react-native

我面临两个问题&无法解决这个问题。任何人都可以解释为什么会这样吗?或者任何人都可以给我解决方案吗?

问题1: 有两个组成部分1)Home 2)Inner 在家中有数据列表&当我点击其中任何一个时它会路由到内部。还有一个使用导航器弹出窗口的后退按钮。有时会重现问题 - 当我单击后面时,它会路由到Home但没有数据(listview元素)但是当我触摸屏幕时数据显示正确。

问题2: 在列表数据中的主组件中,单行内还有一些重复数据。 我已经使用了map功能。有时(大部分时间它显示正确)它也没有在列表视图中显示,行显示正确但重复的数据丢失。

<ListView onEndReached={this.props.reloadArticles} onEndReachedThreshold={10} dataSource={this.props.dataSource} renderRow={this.renderPost} enableEmptySections={true} refreshControl={ <RefreshControl refreshing={this.props.isRefreshing} onRefresh={this.props._onRefresh} /> } />

2 个答案:

答案 0 :(得分:0)

NO 1:

听起来像这样:https://github.com/facebook/react-native/issues/8607 如果使用rn 0.4.0设置,则initialListSize = {0}可以帮助

NO 2: 您能否发布您的renderRow / dataSource代码

答案 1 :(得分:0)

@SnowMax抱歉迟到的回复&amp;谢谢你的帮助。

由于联盟项目,我无法共享所有代码,但我可以分享代码结构:

   renderPost = (list, sectionID, rowID) => {
     if(list && list.is_shared_post == true){
        return (
            <WallShared list={list} rowID={rowID}  /> 
        ); 
     }
 }
class WallShared extends Component {
  constructor(props) {
    super(props);
  }
    render() {
        if( this.props.list.is_shared_post == true){
                    switch(this.props.list.TblPostsComments.post_type){
                    case 'T':
                    return (<ShareText  list={this.props.list}  />); 
                    default:
                    return (<ShareDefault list={this.props.list} rowID={this.props.rowID}  />);
                    break;
                  }
        } else {
                  return (
                    <View>something</View>
                  )
         }
  }
}
export default WallShared;

    class ShareText extends Component {
      constructor(props) {
        super(props);
        this.state ={
          isLoggedIn:false,
        }
      }
    componentDidMount(){
      }
    render() {

        var ShareBlock = this.props.list.TblPostsComments.shared_contents.map(function(cont, ind) {
                return (
                   <View style={[styles.feedItem, styles.SfeedItem]} key={ind}> </View>
                );
        },this);
        return(
              <View style={styles.feedItem}>
                <View style={styles.sharedWrap}>
                  { ShareBlock }
                </View>
              </View>  
        );
      }
    }

    export default ShareText;