我有一个React Native View,包含一个Text字段,我使用onLayoutprops 进行一些位置计算,这些计算依赖于它提供的数据.

<View onLayout={this.calculateDimensions}>
  <Text>{this.props.content}</Text>
</View>

这很有效,但有一种情况是,contentprops 更新为具有相同字符大小的不同字符串.这将导致布局不会更改,也不会触发onLayout.

每次更新contentprops 时,必须进行这些位置计算.

Note:我知道有很多方法可以更新组件.更新和布局不一样,不幸的是不会触发onLayout.

推荐答案

您可以根据内容拥有唯一的密钥.每当组件的关键属性发生更改时,它都会强制重新渲染.

React-native相关问答推荐

如何在使用嵌套的堆栈导航器在选项卡之间导航后弹出到堆栈顶部?

类似Snapchat的Reaction Native筛选器

ios 中节列表中的scrollToLocation 不起作用.在 Android 上,列表滚动回索引 0,但在 ios 上不会发生同样的情况

无法读取 @react-native-async-storage/async-storage 的未定义属性setItem

如何在react-native 中存储/保存数据

react-native: 'adb' 不是内部或外部命令、可运行程序或批处理文件

异步(async)/等待(await)和递归

React Native 错误找不到模块metro-config/src/defaults/blacklist

如何使用 React Navigation 使 TabNavigator 按钮推送模态屏幕

如何在 react-native 中在图像周围添加阴影

Property body[41] of BlockStatement expected node to be of a type ["Statement"] but instead got "AssignmentExpression"

试图注册两个同名的视图 RNGestureHandlerButton

如何从 stack.navigation 外部的组件中使用 navigation.navigate

可以react native使用jQuery

从数据源添加/删除列表视图项时为它们设置动画

如何使用特定目标运行 react-native run-ios

INSTALL_FAILED_UPDATE_INCOMPATIBLE:包签名与之前安装的版本不匹配,忽略

列之间的 React Native FlatList 分隔符

react-navigation 标题有一条微弱的线

为什么 this.state 在react-native中未定义?