Вам не нужно сохранять данные, полученные из redux, в состояние, вы можете напрямую использовать это значение, если не хотите выполнять некоторые локальные манипуляции.
const QAScreen = props =>{
subjectId = props.route.params.subjectId;
const dispatch = useDispatch()
// fetching the data using dispatch
useEffect(()=>{
dispatch(fetchQA(subjectId))
},[dispatch]);
const userTestDetails = useSelector(state => state.qa.questionAndAnswers);
return(<View>
<Text> welcome to QA Screen</Text>
<FlatList data={userTestDetails}
keyExtractor={item=>item.questionId}
renderItem={itemData => <ListQA data={itemData.item} index={itemData.index} />}
/>
</View>
)
}
Также, поскольку вы отправляете действие, которое выбирает и обновляет данные в редукторе, это правильно, что у вас не будет данных сразу, если вы вообще используете sh для обновления состояния, вам нужно использовать useEffect
const QAScreen = props =>{
subjectId = props.route.params.subjectId;
const dispatch = useDispatch()
// fetching the data using dispatch
useEffect(()=>{
dispatch(fetchQA(subjectId))
},[dispatch]);
const selectedQuestions = useSelector(state => state.qa.questionAndAnswers);
const [userTestDetails,setUserTestDetails] = useState(selectedQuestions);
useEffect(() => {
setUserTestDetails(userTestDetails);
}, [selectedQuestions]);
...
}