加载此组件时,访存功能应访存数据,并使用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>
)
}
答案 0 :(得分:0)
您无需将从redux获得的数据存储到状态中,除非您想进行一些本地操作,否则可以直接使用该值
<Modal open={this.props.show} little showCloseIcon={true} styles={modalStyles} onClose={this.props.onModalClose}> //rename your prop function to onModalClose//
此外,由于您要调度一个在reducer中获取和更新数据的操作,因此,您将不会立即拥有数据是正确的,如果您完全希望更新状态,则需要使用{{ 1}}
x = 6
list = {
('bad', 0, 0),
('good', 10, 10),
('ugly', 20, 20),
('bullets:', 5, 30),
(str(x), 70, 30)
}
for i in list:
oled.text(i[0], i[1], i[2])