Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
138 views
in Technique[技术] by (71.8m points)

javascript - Rerender Flatlist after Call api then setState

I just started learning React native, and want to render FlaList after setState. I am try to call Api to get Data and then I sorting that data but the FlatList is not rerender with newData. I also try extraData but nothing happen. Where am I missing?

Thank for your help.

function HomeScreen(props) {
    const {transactions = []} = useSelector(selectors.transactions) || [];
    const [listTransaction, setListTransaction] = useState([]);

    useEffect(() => {
        dispatch(BalanceActions.balanceRequest()); // This is my call Api
  
        sortListTransaction(); // I call sortFunc after that
    }, []);

    const sortListTransaction = () => { // In this function I group by date the array of the result Api
        let groups = [];

        transaction.forEach((item) => {
            let date = moment(item.date).format('MM/DD/YYYY');
            if (date in groups) {
                groups[date].push(item);
            } else {
                groups[date] = new Array(item);
            }
        });

        setListTransaction(groups);
    };

    const _renderItem = ({item}) => {
        return <BodyContent data={item} />;
    };

    // Then my FlatList like:
    return (
        <FlatList
            data={listTransaction}
            keyExtractor={(item) => item.id}
            renderItem={_renderItem}
            extraData={listTransaction}
        />
    )
}
question from:https://stackoverflow.com/questions/65882153/rerender-flatlist-after-call-api-then-setstate

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...