Javascript 在本机视图上强制仅布局

Javascript 在本机视图上强制仅布局,javascript,ios,reactjs,react-native,react-native-ios,Javascript,Ios,Reactjs,React Native,React Native Ios,我有一个React Native视图,其中包含一个文本字段,我正在使用该道具根据它提供的数据进行一些位置计算 {this.props.content} 这很好,但是有一种情况,内容道具更新为具有相同字符大小的不同字符串。这将导致布局不更改,并且仅布局不触发 每次内容道具更新时,必须进行这些位置计算 注意:我知道有很多方法可以更新组件。更新与布局不同,遗憾的是不会触发onLayout您可以根据内容使用唯一的键。每当组件的关键属性发生更改时,它都会强制重新渲染。方法这一点。calculateDi

我有一个React Native
视图
,其中包含一个
文本
字段,我正在使用该道具根据它提供的数据进行一些位置计算


{this.props.content}
这很好,但是有一种情况,
内容
道具更新为具有相同字符大小的不同字符串。这将导致布局不更改,并且
仅布局
不触发

每次
内容
道具更新时,必须进行这些位置计算


注意:我知道有很多方法可以更新组件。更新与布局不同,遗憾的是不会触发
onLayout

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

方法
这一点。calculateDimensions
需要有某种指示,即应该再次调用它并重新渲染。我建议使用它的状态或备忘录

让我给你看一个带有React钩子的例子。我正在设置组件
onLayout
,它使用回调onComponentLayout
onComponentLayout
具有状态
componentHeight
,一旦更改,就会重新渲染。因此,如果缺少componentHeight,我可以动态更改它

...
const onComponentLayout = useCallback(({nativeEvent: {layout}}) => {
   !componentHeight && setComponentHeight(layout.height);
}, [componentHeight, setComponentHeight]);
...

return (
...
    <Component
      onLayout={onComponentLayout}
    />
...
)
。。。
const onComponentLayout=useCallback({nativeEvent:{layout}})=>{
!componentHeight&&setComponentHeight(布局高度);
},[componentHeight,setComponentHeight]);
...
返回(
...
...
)

如果所有其他操作都失败,您是否尝试过使用
内容
作为
查看
?尽管每次
内容
发生变化时都会创建一个全新的
视图
组件,但这可能是值得的,具体取决于用例<代码>
@CAJE你找到答案了吗?我目前正在尝试使用PanResponder在特定时刻触发onLayout事件。如果你有任何见解,请告诉我。谢谢@塞巴斯蒂扬杜曼·契维奇恐怕除了索勒的攻击之外,我没有任何洞察力。我不得不求助于此。