Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 是否在样式数组中反应本机映射数组对象?_Arrays_React Native_Styles - Fatal编程技术网

Arrays 是否在样式数组中反应本机映射数组对象?

Arrays 是否在样式数组中反应本机映射数组对象?,arrays,react-native,styles,Arrays,React Native,Styles,我已经试着解决了好几个小时了,但没有成功。 除了样式数组之外,其他一切都可以工作。不确定如何在样式数组中包含映射的数组对象 错误:失败的道具类型:无效的道具。样式 因此,样式数组中的每个元素必须是对象或样式表。大概是这样的: style = StyleSheet.create({ navTxt: { color: 'red' } }) <Text style={ [ style.navTxt, { label: x.label } ] }> {x.label} </Text&

我已经试着解决了好几个小时了,但没有成功。 除了样式数组之外,其他一切都可以工作。不确定如何在样式数组中包含映射的数组对象

错误:失败的道具类型:无效的道具。样式


因此,样式数组中的每个元素必须是对象或样式表。大概是这样的:

style = StyleSheet.create({ navTxt: { color: 'red' } })

<Text style={ [ style.navTxt, { label: x.label } ] }> {x.label} </Text>

样式数组中的每个元素必须是对象或样式表。大概是这样的:

style = StyleSheet.create({ navTxt: { color: 'red' } })

<Text style={ [ style.navTxt, { label: x.label } ] }> {x.label} </Text>

老实说,这对我来说很奇怪,但我认为这就是你想要实现的

更新: 有一个解决方法,你可以这样做,如下

render() {
const navTabs = [
  { label: 'Home' },
  { label: 'Next' },
];
const styles = {
  Home: {
    color: 'rgb(255, 0, 0)',
  },
  Next: {
    color: 'rgb(0, 0, 0)',
  },
  navTxt: {
    backgroundColor: 'rgb(0, 255, 0)',
  },
};

return (
     {navTabs.map(x =>
          <TouchableOpacity key={x.label} onPress={() => {}}>
            <Text style={{ ...styles.navTxt, ...styles[x.label] }}> {x.label} </Text>
          </TouchableOpacity>
        )}
);
}

老实说,这对我来说很奇怪,但我认为这就是你想要实现的

更新: 有一个解决方法,你可以这样做,如下

render() {
const navTabs = [
  { label: 'Home' },
  { label: 'Next' },
];
const styles = {
  Home: {
    color: 'rgb(255, 0, 0)',
  },
  Next: {
    color: 'rgb(0, 0, 0)',
  },
  navTxt: {
    backgroundColor: 'rgb(0, 255, 0)',
  },
};

return (
     {navTabs.map(x =>
          <TouchableOpacity key={x.label} onPress={() => {}}>
            <Text style={{ ...styles.navTxt, ...styles[x.label] }}> {x.label} </Text>
          </TouchableOpacity>
        )}
);
}

现在的错误是:提供给text的props.style键'label'无效好吧,我写这个是为了一个例子。您必须从可用列表中选择所需的值:一些是fontSize或fontWeight。样式数组中${x.label}的等效语法是什么?我不太明白你的推荐信。两种样式将是Text style={[one,two]},但在本例中,第二种样式是从.map函数中插入的。要从可用列表中选择所需的值…抱歉,我不理解您的意思${x.label}-它是什么?它不是文本样式!这是一根绳子。U对象如下:object.assignnavTxt,“Home”。但这是错误的,没有字符串,只有对象。你想要什么?我不明白现在的错误是:提供给文本的props.style键'label'无效好吧,我写这个是为了一个例子。您必须从可用列表中选择所需的值:一些是fontSize或fontWeight。样式数组中${x.label}的等效语法是什么?我不太明白你的推荐信。两种样式将是Text style={[one,two]},但在本例中,第二种样式是从.map函数中插入的。要从可用列表中选择所需的值…抱歉,我不理解您的意思${x.label}-它是什么?它不是文本样式!这是一根绳子。U对象如下:object.assignnavTxt,“Home”。但这是错误的,没有字符串,只有对象。你想要什么?我不理解我也应该包括navTxt样式,以确定是否需要[navTxt,x.label],但工作的基础是它们是背景色,并将问题与所提到的所有相关样式联系起来above@Max伟大的就这样。出于某种原因,本机基本文本不允许在样式属性中使用数组。因此,这种解决方法可以让事情顺利进行如果您使用的是React Native的文本组件,那么这个解决方案应该很好:{x.label}我还应该包括navTxt样式,以确定对[navTxt,x.label]的需要但工作的基础上,他们是背景色等与所有相关的风格提到的问题above@Max伟大的就这样。出于某种原因,本机基本文本不允许在样式属性中使用数组。因此,这个解决方法可以让事情顺利进行如果您使用的是React Native的文本组件,那么这个解决方案应该很好:{x.label}为什么要使用x.label作为不是样式的样式?应该可以工作。@Val因为应用了两种样式-通常是数组样式={[navTxt,Home]}或[navTxt,Next],但因为我正在映射常量navTabs以填充、导航函数和插值标签字符串以及样式属性,x.label派生自.map函数。检查以下@soutoto提供的工作解决方案为什么使用x.label作为样式而不是样式?应该可以工作。@Val因为应用了两种样式-通常是数组样式={[navTxt,Home]}或[navTxt,Next],但因为我正在映射常量navTabs以填充、导航函数和插值标签字符串以及样式属性,x.label派生自.map函数。检查@soutot提供的以下工作溶液