我正在尝试遍历此数组并打印出引号,具体取决于它是保存为true还是false。
目前,它只是在JSON数组中打印出来。我不熟悉原生,所以不是100%确定map
的行为。
var savedQuote = quotes.quotesArray.map(quote => quote.isSaved)
{
quotes.quotesArray.map((quote, i) => {
if(savedQuote){
return(
<TouchableOpacity key={i} style = {styles.border}>
<Text style = {styles.text}>
i: {i}. {quotes.quotesArray[i].preview}
</Text>
</TouchableOpacity>
)
}
else{
return <Text key = {i}>{i}Nada</Text>
}
})
}
答案 0 :(得分:1)
我不明白为什么你的代码中有两个map
。一个就足够了:
quotes.quotesArray.map((quote, i) => {
if(quote.isSaved){
return(
<TouchableOpacity key={i} style = {styles.border}>
<Text style = {styles.text}>
i: {i}. {quote.preview}
</Text>
</TouchableOpacity>
)
} else {
return <Text key = {i}>{i}Nada</Text>
}
});
这将循环引号并返回一个节点,如果quote.isSaved为true,则返回一个节点。
如果将它们分配给新变量ex:var savedQuotes = ...
或在渲染函数中使用它,可以将它们保存到新数组中:
render() {
return (
<View>
{quotes.quotesArray.map...}
</View>
);
}
map()方法创建一个新数组,其中包含调用a的结果 为此数组中的每个元素提供了函数。
以下是更多信息:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map
以下是反应文档中的一些示例:https://facebook.github.io/react/docs/lists-and-keys.html(应该足够接近反应原生)