javascript - 不知道如何映射此对象内容以在本机反应中显示
问题描述
对象“过滤”控制台日志如下所示 - 我需要在我的应用程序标题中映射每个dashboardTitle,如上图所示。我尝试了以下方法,但由于某种原因没有显示任何内容-
const [filtered, setFiltered] = useState([]);
{filtered.map(item => (
<Text style={styles.headerText}>
{item.dashboardName} - {item.dashBoardTitle}
</Text>
))}
{filtered.map((item, index)=>(
<Text style={styles.headerText} key={index}>
{item.dashboardName}
</Text>
))}
{messages.map((message, key)=>(
<Text style={styles.headerText}>
{message.dashboardName}
</Text>
))}
映射消息不会返回任何内容,因为“消息”在函数中。我不确定它会呈现什么其他方式。有任何想法吗?完整的 AppHeader 代码如下 -
import React, { useState, useEffect, useReducer } from 'react';
import { View, Text, StyleSheet, FlatList, ActivityIndicator, Keyboard} from 'react-native';
import { Searchbar } from 'react-native-paper';
import { theme } from '../theme';
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
import { TouchableOpacity } from 'react-native-gesture-handler';
import { apiStateReducer } from '../reducers/ApiStateReducer';
import CognitensorEndpoints from '../services/network/CognitensorEndpoints';
import DefaultView from '../components/default/DefaultView';
import DashboardListCard from '../components/DashboardListCard';
const AppHeader = ({
scene,
previous,
navigation,
searchIconVisible = false,
}) => {
const [dashboards, dispatchDashboards] = useReducer(apiStateReducer, {
data: [],
isLoading: true,
isError: false,
});
const [filtered, setFiltered] = useState();
const setLoading = (value) => {
const messages = dashboards.data.message.filter((item) => {
const title = item.dashboardTitle || item.dashboardName;
return title.toLowerCase().startsWith(value.toLowerCase());
});
setFiltered(messages);
console.log(filtered);
};
const dropShadowStyle = styles.dropShadow;
const toggleSearchVisibility = () => {
navigation.navigate('Search');
};
useEffect(() => {
CognitensorEndpoints.getDashboardList({
dispatchReducer: dispatchDashboards,
});
}, []);
return (
<>
<View style={styles.header}>
<View style={styles.headerLeftIcon}>
<TouchableOpacity onPress={navigation.pop}>
{previous ? (
<MaterialIcons
name="chevron-left"
size={24}
style={styles.visible}
/>
) : (
<MaterialIcons
name="chevron-left"
size={24}
style={styles.invisible}
/>
)}
</TouchableOpacity>
</View>
<Text style={styles.headerText}>{filtered}</Text>
<View style={styles.headerRightIconContainer}>
{searchIconVisible ? (
<TouchableOpacity
style={[styles.headerRightIcon, dropShadowStyle]}
onPress={toggleSearchVisibility}>
<MaterialIcons name="search" size={24} style={styles.visible} />
</TouchableOpacity>
) : (
<View style={styles.invisible} />
)}
</View>
</View>
</>
);
};
export default AppHeader;
解决方案
推荐阅读
- android - Navigation.findNavController(it) 和 NavHostFragment.findNavController() 有什么区别?
- c# - C#中左侧操作数的三元条件运算符
- node.js - 如何使用他们的 API 将有效图像保存到 Github?
- python - 在python中的文本中查找具有特定条件的单词
- java - 如何将字符串数组从单独的方法添加到 JList 模型?
- php - localhost 将您重定向太多次 ERR_TOO_MANY_REDIRECTS
- azure - 使用 Azure AD 用户凭据将文件存储共享映射为网络驱动器
- c# - 在 .Net Core 控制台应用程序中同时使用 NLog 和控制台日志记录
- spring-boot - Spring Boot、Thymeleaf 和 CSS
- django - 如何将 Google 日历添加到已经使用 Django-allauth google social login 的 Django Webapp