reactjs - 更改状态时,是只渲染使用该状态的组件还是所有同级别的组件都渲染?
问题描述
就像我的问题一样,只有组件状态发生变化时才反应原生或反应是自动计算渲染。像例子
const DATA = [
{
id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
title: 'First Item',
},
{
id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
title: 'Second Item',
},
{
id: '58694a0f-3da1-471f-bd96-145571e29d72',
title: 'Third Item',
},
];
const Item = ({ title }) => (
<View style={styles.item}>
<Text style={styles.title}>{title}</Text>
</View>
);
const App: () => React$Node = () => {
const [number, setNumber] = useState(1);
const renderItem = ({item}) => {
return <Item title={item.title} />;
};
return (
<>
<StatusBar barStyle="dark-content" />
<SafeAreaView>
<ScrollView
contentInsetAdjustmentBehavior="automatic"
style={styles.scrollView}>
<Button
onPress={() => {
setNumber(number+1)
}}
title={number.toString()}
color="#841584"
accessibilityLabel="Learn more about this purple button"
/>
<FlatList
data={DATA}
renderItem={renderItem}
keyExtractor={(item) => item.id}
/>
</ScrollView>
</SafeAreaView>
</>
);
};
当设置状态编号时,仅按钮编号重新渲染或所有组件在平面列表重新渲染中包含按钮
解决方案
如果组件状态发生变化,所有组件将重新渲染。
推荐阅读
- javascript - 使用 JS 在两个 HTML 元素之间切换
- python - 将字符串更改为逗号分隔的 numpy int 数组
- php - 你在 LARAVEL 5.4 中使用什么管理模板?
- php - 如何在视图上使用不同的按钮?
- javascript - 如何编写正则表达式以在十六进制流中搜索信用卡号
- python-3.x - 创建对象时,将用户添加到 django 模型的 manytomany 字段中的用户列表
- excel - 寻找这个 VBA 步骤通过错误的解释
- c# - 将 cshtml 中的参数解析为 cshtml.cs 中的操作
- python - 如何允许最后一个 resnet 块可训练?
- python-3.x - pymongo 是否支持 json 模式验证?