嗨,我有下面的代码,我只是目前想打印出的图像,将风格后。它应该打印一张图片,因为它在列表中遇到他们,并打印他们旁边的面朝下的一面。
我已经改变了'cardImages = []'的使用方式...
const CardImages = [
{
image: require("../assets/images/Matching_Cards/Level_One/BLUE_CARD.png"),
},
我意识到这不是正确的方式,但我不得不尝试...
const CardImages = [
{
image: "../assets/images/Matching_Cards/Level_One/BLUE_CARD.png",
},
这似乎没有什么区别。我在控制台日志中没有看到任何错误,我的列表被打乱并填充了我可以从console.log()中看到的图像。
下面是我的返回方法附加到我的CardDisplay函数,它应该迭代它们并在元素中显示它们。
return (
<View>
<Text style={{ textAlign: "center" }}>CARD DISPLAY: {difficulty}</Text>
<View>
{cards.map((card) => (
<View key={card.id}>
<Image
style={GlobalStyles.faceDownCard}
source={require("../assets/images/Matching_Cards/BACKGROUND_CARD.png")}
/>
<Image style={GlobalStyles.faceDownCard} source={card} />
</View>
))}
</View>
</View>
);
下面是我的组件的完整结构
import React, { useEffect, useState } from "react";
import { Text, View, Image } from "react-native";
import { GlobalStyles } from "../Styles/GlobalStyles";
const CardImages = [
{
image: require("../assets/images/Matching_Cards/Level_One/BLUE_CARD.png"),
},
{
image: require("../assets/images/Matching_Cards/Level_One/ORANGE_CARD.png"),
},
{
image: require("../assets/images/Matching_Cards/Level_One/PINK_CARD.png"),
},
{
image: require("../assets/images/Matching_Cards/Level_One/RED_CARD.png"),
},
{
image: require("../assets/images/Matching_Cards/Level_One/WHITE_CARD.png"),
},
{
image: require("../assets/images/Matching_Cards/Level_One/YELLOW_CARD.png"),
},
];
// shuffle cards
const CardDisplay = ({ difficulty }) => {
const [cards, setCards] = useState([]);
useEffect(() => {
shuffleCards();
}, []);
const shuffleCards = () => {
const shuffleCards = [...CardImages, ...CardImages]
.sort(() => Math.random() - 0.5)
.map((card) => ({ ...card, id: Math.random() }));
setCards(shuffleCards);
};
console.log(cards);
return (
<View>
<Text style={{ textAlign: "center" }}>CARD DISPLAY: {difficulty}</Text>
<View>
{cards.map((card) => (
<View key={card.id}>
<Image
style={GlobalStyles.faceDownCard}
source={require("../assets/images/Matching_Cards/BACKGROUND_CARD.png")}
/>
<Image style={GlobalStyles.faceUpCard} source={card} />
</View>
))}
</View>
</View>
);
};
export default CardDisplay;
感谢所有和任何帮助!:)
3条答案
按热度按时间fnvucqvd1#
您的图像需要
height
/width
prop 来定义。在StyleSheet中定义then是不够的(如果是,我不确定);你必须把它们交给那些 prop 中的形象。anauzrmj2#
尝试给你的图像组件一些样式的高度和宽度
5us2dqdw3#
在我的例子中,我将“Image”替换为“ImageBackground”
所以,替换这个:
对此: