javascript - 为什么这种样式属性分配在 React Native 中不能按预期工作?
问题描述
我已经在我的浏览器中(使用 Expo CLI Webpack)在 React Native 上测试了以下代码,结果是屏幕左侧的三个绿色方块。
import React, { useState } from "react";
import { View, TouchableOpacity, Text, StyleSheet } from "react-native";
const styles = {
width: 100,
height: 100,
backgroundColor: "green"
};
const Rectangle = (label, value) => {
return (
<View style={[styles, {[label]: value}]}/> // Line I expect to modify style.backgroundColor
);
};
const Page = () => {
return (
<View style={{flex: 1, justifyContent: "space-evenly"}}>
<Rectangle label="backgroundColor" value="red" />
<Rectangle label="backgroundColor" value="green" />
<Rectangle label="backgroundColor" value="blue" />
</View>
);
};
export default Page;
但是,我预计会看到一个红色、绿色和蓝色的正方形。我试图模仿在 RN 文档的这个页面上多次使用的模式,但它的行为不像我预期的那样。有人可以解释一下我在这里误解了什么吗?谢谢。
解决方案
道具将作为单个对象属性传递,而不是作为多个属性传递。
只需替换(label, value)
为({label, value})
.
通过在你的道具周围放置花括号,你正在破坏第一个属性,在这种情况下是你的道具。
推荐阅读
- c# - Nuget Build,什么时候用PackageName.Targets和PackageName.props?
- java - 在 Java 中运行 HTTPUrlConnection 的一些链接下载缓慢
- powerbi - 获取我根据销售日期支付的费用
- django - 如何将 django 表单 inlineformset 调用到 django 模板中
- wpf - 将滚动设置为 WPF 中上下文菜单上的 MenuItem 之一
- sql - 是否可以在 BigQuery 中创建包含动态 sql 执行的 UDF?
- javascript - 反应状态作为道具传递给子组件未显示
- pycharm - 使用 PyCharm IDE 在预制的虚拟环境中工作
- visual-studio-code - VScode SSH 扩展在移动到新位置后不断断开连接
- reactjs - 如何在反应中添加多个具有相同名称的css属性?