например так
useEffect(() => {
dispatch(getTemplates());
dispatch(getInfo());
}, []);
useEffect(() => {
dispatch(getData(info, templates));
}, [info, templates])
если куски стейта независимые, то ничего страшного в “одно свежее а другое устаревшее” нет, просто обрабатывай их независимо. двумя useEffect’ами
если они должны быть синхронизированы (хз, зачем), это делается на уровне редакса, а не на уровне компонента