Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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
Javascript 未定义flatlist、filterdFaqs的数组筛选器_Javascript_React Native - Fatal编程技术网

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={...}
            />
       ..
    );
};