Reactjs useState不会在第一次渲染时初始化获取的数据

Reactjs useState不会在第一次渲染时初始化获取的数据,reactjs,react-native,react-redux,react-hooks,Reactjs,React Native,React Redux,React Hooks,加载此组件时,fetch函数应获取数据,并使用reducer将数据存储在存储中。当我使用useSelector选择该数据并使用useState初始化该值时,它不会在第一次渲染中得到更新。我希望使用useState获取和存储数据。请帮助我使用useState将获取的数据存储在状态变量中,以便在第一次渲染时初始化获取的数据 import { useDispatch, useSelector } from 'react-redux'; import { fetchQA } from '../../st

加载此组件时,fetch函数应获取数据,并使用reducer将数据存储在存储中。当我使用useSelector选择该数据并使用useState初始化该值时,它不会在第一次渲染中得到更新。我希望使用useState获取和存储数据。请帮助我使用useState将获取的数据存储在状态变量中,以便在第一次渲染时初始化获取的数据

import { useDispatch, useSelector } from 'react-redux';
import { fetchQA } from '../../store/actions/qp';
import ListQA from '../../components/ListQA';

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);**



    return(<View>
        <Text> welcome to QA Screen</Text>
        <FlatList   **data={userTestDetails}** // not updating on initial render
                    keyExtractor={item=>item.questionId}
                    renderItem={itemData => <ListQA data={itemData.item} index={itemData.index} />}
        />
    </View>
    )
}
从'react redux'导入{useDispatch,useSelector};
从“../../store/actions/qp”导入{fetchQA};
从“../../components/ListQA”导入ListQA;
常量屏幕=道具=>{
主体ID=props.route.params.subjectId;
const dispatch=usedpatch()
//使用dispatch获取数据
useffect(()=>{
调度(获取QA(主体))
},[发送];
const selectedQuestions=useSelector(state=>state.qa.questionAndAnswers);
**const[userTestDetails,setUserTestDetails]=useState(selectedQuestions)**
返回(
欢迎来到QA屏幕
item.questionId}
renderItem={itemData=>}
/>
)
}

您不需要将从redux获得的数据存储到state中,您可以直接使用该值,除非您想进行一些本地操作

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>
    )
}

您不需要将从redux获得的数据存储到state中,您可以直接使用该值,除非您希望执行一些本地操作

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>
    )
}

我不明白你为什么把
选择的问题
放在本地州。你在
selectedQuestions
中得到值了吗?我不明白你为什么把
selectedQuestions
放在本地州。您是否在
selectedQuestions
中获取值?