React Native Grid View:Flexbox 换行不起作用

2023-12-04

React Native 0.32 似乎有一个错误。下面的代码在 0.20 和 0.24 中运行良好,正如您在 RN Play 链接中看到的那样。

https://rnplay.org/apps/W5k6Xg

'use strict';

var React = require('react');
var ReactNative = require('react-native');
var {
  AppRegistry,
  ListView,
  StyleSheet,
  Text,
  View,
  Image
} = ReactNative;

var GridLayoutExample = React.createClass({

  getInitialState: function() {
    var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
    return {
      dataSource: ds.cloneWithRows([
        { name: 'John', image: 'https://d30y9cdsu7xlg0.cloudfront.net/png/619232-84.png' },
        { name: 'Joel', image: 'https://d30y9cdsu7xlg0.cloudfront.net/png/619230-84.png' },
        { name: 'James', image: 'https://d30y9cdsu7xlg0.cloudfront.net/png/619168-84.png' },
        { name: 'Jimmy', image: 'https://d30y9cdsu7xlg0.cloudfront.net/png/619130-84.png' },
        { name: 'Jackson', image: 'https://d30y9cdsu7xlg0.cloudfront.net/png/619098-84.png' },
        { name: 'Jillian', image: 'https://d30y9cdsu7xlg0.cloudfront.net/png/618793-84.png' },
        { name: 'Julie', image: 'https://d30y9cdsu7xlg0.cloudfront.net/png/618803-84.png' },
        { name: 'Devin', image: 'https://d30y9cdsu7xlg0.cloudfront.net/png/618706-84.png' }
      ])
    };
  },

  render: function() {
    return (
      // ListView wraps ScrollView and so takes on its properties.
      // With that in mind you can use the ScrollView's contentContainerStyle prop to style the items.
        <ListView contentContainerStyle={styles.list}
          dataSource={this.state.dataSource}
          renderRow={this._renderRow}
        />
    );
  },

  _renderRow: function(rowData: string, sectionID: number, rowID: number) {
    return (
        <View>
          <View style={styles.row}>
            <Image style={styles.thumb} source={{uri: rowData.image}} />
            <Text style={styles.text}>
              {rowData.name}
            </Text>
          </View>
        </View>
    );
  }
});


var styles = StyleSheet.create({
  list: {
    justifyContent: 'center',
    flexDirection: 'row',
    flexWrap: 'wrap',
    backgroundColor: "blue"
  },
  row: {
    justifyContent: 'center',
    padding: 5,
    width: 100,
    height: 100,
    backgroundColor: '#F6F6F6',
    borderWidth: 1,
    borderColor: '#CCC',
    alignItems: 'center'
  },
  thumb: {
    width: 64,
    height: 64
  },
  text: {
    marginTop: 5,
    fontWeight: 'bold'
  }
});

AppRegistry.registerComponent('SampleApp', () => GridLayoutExample);

预期输出(正如您在 RNPlay w/react native 0.24.1 上看到的那样):

Expected result

我所看到的(React Native 0.32):

Wrong result. Can only see 3 cells and rest of them aren't wrapping

请帮我解决这个问题。


你应该添加alignItems: 'flex-start'给你的list的风格。

list: {
  justifyContent: 'center',
  flexDirection: 'row',
  flexWrap: 'wrap',
  alignItems: 'flex-start',
  backgroundColor: "blue"
},

发生了重大变化反应本机 0.28这改变了行为flex-wrap:

由于性能调整flexWrap: wrap不再与alignItems: 'stretch'(默认)。如果你使用flexWrap: wrap你可能会想要添加alignItems: 'flex-start'风格也是如此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native Grid View:Flexbox 换行不起作用 的相关文章

随机推荐

  • NSTimer 不会失效

    我在使计时器失效时遇到问题 property nonatomic strong NSTimer timer 在成功的块内 我在主线程上分配和设置计时器 dispatch async dispatch get main queue self
  • Mongoose(或 MongoDB)中的 TransientTransactionError 是什么?

    I have server js and db js The db js文件使用 Mongoose 与我的数据库交互 我使用server js从中调用函数db js var mongoose require mongoose mongoos
  • Cassandra Datastax 驱动程序在访问器上设置分页状态

    我正在使用 Datastax 可爱的 cassandra java 驱动程序 我试图将所有查询字符串封装到内置访问器中以进行映射 但我需要能够设置查询的分页状态 我发现这可以通过普通的语句 SimpleStatement 实现 但我还没有找
  • 如何以Google方式隐藏库源代码?

    例如 我有一个library我想保护源代码不被查看 我想到的第一个方法是为私有函数创建公共包装器 如下所示 function executeMyCoolFunction param1 param2 param3 return execute
  • 如何在xslt中提取这种格式

    我有一个 xml 结构
  • Bash 故障排除:不是有效的标识符

    初学者试图让管道在 bash 中工作 如果有人能明白为什么当我运行以下命令时我会得到 bash i not a valid identifier 这真的很有帮助 另外如果还有其他错误请告诉我 for i in home regionstex
  • Postgres 9.4 Django 1.9 获取所有 json 键

    我在 django 模型中有一个 JSONField 如下所示 from django db import models from django contrib postgres fields import JSONField class
  • JBoss / HotSpot JVM 崩溃

    我们有一个基于 Jboss 构建的 Web 应用程序 已经投入生产多年 在过去的 18 个月里 它从未下降过 然而 最近两天 jvm崩溃了4次 当 JVM 崩溃时 我们会收到一份我正在努力解读的错误报告 我看过其他几个崩溃报告 在这个网站和
  • Keras 中的自定义损失函数

    我正在研究一种图像类增量分类器方法 使用 CNN 作为特征提取器和全连接块进行分类 首先 我对 VGG 训练网络进行了微调以完成新任务 一旦网络针对新任务进行了训练 我就会为每个类别存储一些示例 以避免忘记新类别何时可用 当某些类可用时 我
  • 从类路径资源文件夹获取文件列表? [复制]

    这个问题在这里已经有答案了 我正在尝试从资源文件夹设置 JFX ImageView 图像 但似乎无法获得不会引发异常的适当 URL 字符串文件路径 var x getRandomImageFromPackage pictures toStr
  • 声明通用项数组时,如何允许推断通用参数?

    我遇到的情况是 我有一系列通用项目 Item 并且在项目本身内 我希望推断和具体的通用参数 也就是说 我想要一组通用项目 但每个项目都可以有不同的通用类型 应该保留这一点 type Item
  • Python 套接字。 OSError: [Errno 9] 错误的文件描述符

    这是我的客户 CLIENT import socket conne socket socket socket AF INET socket SOCK STREAM conne setsockopt socket SOL SOCKET soc
  • 我在 addCase 中指定什么“类型”来返回列?

    我正在尝试使用 case 语句进行查询 但无法弄清楚如何让 case 返回列值而不是常量 我的查询工作得很好 除了我为结果提供的列名被 Cake 或者 PDO 引用或错误处理在我无法挖掘的层中的某处 我已经了解了bindValue 但是我一
  • 在 Spark UDF 中操作数据帧

    我有一个 UDF 可以从数据帧中过滤和选择值 但它遇到 对象不可序列化 错误 详细信息如下 假设我有一个数据框 df1 其中包含名称为 ID Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 的列 Y10 我想根据另一个数据帧 df2
  • 如何制作圆角椭圆形按钮?

    我的目标是让我的按钮看起来像这样 减去按钮周围的黑边 阅读了很多帖子后 我看到大多数解决方案都说使用 layer cornerRadius 10 0 当我这样做时 我得到这个 它使边缘变圆 但没有给我我想要的目标 有什么建议吗 Swift
  • 新窗口中的高图表

    我使用 highcharts 在我的页面中显示图表 它工作正常 但有时图表中的数据过于 压缩 所以我应该找到一种方法以更大的尺寸查看图表 我在互联网上阅读了几篇关于这个主题的文章 一般来说 他们建议使用 highslide 但我不想这样做
  • Android Studio:创建横向布局

    直到最近我才使用 Eclipse 在 Eclipse 中我只是创建了一个文件夹 res layout landscape 并将备用横向布局放入其中 然而 在Android Studio 1 1 0中 我似乎不能这样做 如何创建备用横向布局的
  • 具有动态项目大小的 C++ 向量

    C STL 向量具有许多不错的属性 但只有在运行时已知每个项目的大小时才有效 我想要一个在运行时具有动态项目大小的向量类 背景 我的项目由整数和双精度序列组成 仅在运行时已知的序列 在运行时为向量指定每个项目的大小就足够了 我知道可能的解决
  • Oracle 运行乘法

    我们都知道如何生成运行总计列 SELECT id date value sum value OVER partition by id order by date total FROM dual ORDER BY date 这会给我类似的东西
  • React Native Grid View:Flexbox 换行不起作用

    React Native 0 32 似乎有一个错误 下面的代码在 0 20 和 0 24 中运行良好 正如您在 RN Play 链接中看到的那样 https rnplay org apps W5k6Xg use strict var Rea