Reactjs useState不会在第一次渲染时初始化获取的数据
加载此组件时,fetch函数应获取数据,并使用reducer将数据存储在存储中。当我使用useSelector选择该数据并使用useState初始化该值时,它不会在第一次渲染中得到更新。我希望使用useState获取和存储数据。请帮助我使用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
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
中获取值?