Javascript 未定义flatlist、filterdFaqs的数组筛选器
我正在尝试筛选数组 数据:Javascript 未定义flatlist、filterdFaqs的数组筛选器,javascript,react-native,Javascript,React Native,我正在尝试筛选数组 数据: 0:{问题:“xx”,回答:xx,userToDisplayFor:“LiteUsers”} 1:{问题:“x”,回答:“xx”,userToDisplayFor:“LiteUsers”},。。。 我得到过滤器FAQ没有定义,有什么想法吗 export const Faq = ({ navigation }) => { const { faq, userTypeReducer: { userType }, } =
0:{问题:“xx”,回答:xx,userToDisplayFor:“LiteUsers”}
1:{问题:“x”,回答:“xx”,userToDisplayFor:“LiteUsers”},。。。
我得到过滤器FAQ没有定义,有什么想法吗
export const Faq = ({ navigation }) => {
const {
faq,
userTypeReducer: { userType },
} = useSelector((state) => state);
const { data, loading, error } = faq;
const dispatch = useDispatch();
const goBack = () => {
...
};
useMountEffect(() => {
trackScreen(screens.FAQ);
dispatch(FaqList());
}, []);
if (userType == "Lite") {
const filterdFaqs = data.filter((q) => q.userToDisplayFor == "LiteUsers");
} else {
const filterdFaqs = data.filter((q) => q.userToDisplayFor !== "LiteUsers");
}
console.log(filterdFaqs);
return (
...
<FlatList
...
data={filterdFaqs}
renderItem={...}
/>
..
);
};
export const Faq=({navigation})=>{
常数{
常见问题,
userTypeReducer:{userType},
}=使用选择器((状态)=>状态);
const{data,loading,error}=faq;
const dispatch=usedpatch();
const goBack=()=>{
...
};
useMountEffect(()=>{
trackScreen(screens.FAQ);
调度(FaqList());
}, []);
if(userType==“Lite”){
const filterdFaqs=data.filter((q)=>q.userToDisplayFor==“LiteUsers”);
}否则{
const filterdFaqs=data.filter((q)=>q.userToDisplayFor!==“LiteUsers”);
}
console.log(过滤器常见问题);
返回(
...
..
);
};
在任何块内使用const
时,它只存在于该块中:
{
const foo='bar';
}
console.log(foo)
filterdFaqs已填充,但随后页面重新渲染器和I get无法读取null的属性“filter”
,这是因为faq
(在dispatch(FaqList());
完成之前)的初始状态不包含数据
键。可以更好地设置初始状态,也可以将data.filter
更改为(data | |[])。filter
export const Faq = ({ navigation }) => {
const {
faq,
userTypeReducer: { userType },
} = useSelector((state) => state);
const { data, loading, error } = faq;
const dispatch = useDispatch();
const goBack = () => {
...
};
useMountEffect(() => {
trackScreen(screens.FAQ);
dispatch(FaqList());
}, []);
if (userType == "Lite") {
const filterdFaqs = data.filter((q) => q.userToDisplayFor == "LiteUsers");
} else {
const filterdFaqs = data.filter((q) => q.userToDisplayFor !== "LiteUsers");
}
console.log(filterdFaqs);
return (
...
<FlatList
...
data={filterdFaqs}
renderItem={...}
/>
..
);
};