【问题标题】:Using AsyncStorage inside useEffect returns undefined?在 useEffect 中使用 AsyncStorage 返回未定义?
【发布时间】:2020-07-12 06:28:41
【问题描述】:

我有以下几点:在 const col 中传递的分数值是未定义的。我是 React 新手。

    const scores: React.FC<{styles: Styles;}> = ({ styles }) => {
        const [score, setScore] = useState();    
         useEffect(() => {
                        async function retrieveData() {
                            const value = await AsyncStorage.getItem('score');
                            const data = JSON.parse(value);
                            setScore(data.First);
                        }
                        retrieveData();
                    });

const col: columnType[] = getScoreMetrics(status, score);
return (<BC styles={styles} col={col} />);
export default scores;

【问题讨论】:

标签: reactjs react-native asyncstorage use-effect


【解决方案1】:

试试这个代码

const scores: React.FC<{styles: Styles;}> = ({ styles }) => {
        const [score, setScore] = useState();    
         useEffect(async() => {
                        async function retrieveData() {
                            const value = await AsyncStorage.getItem('score');
                            const data = await JSON.parse(value);
                            setScore(data.First);
                        }
                        retrieveData();
                    },[]);

const col: columnType[] = getScoreMetrics(status, score);
return (<BC styles={styles} col={col} />);
export default scores;

【讨论】:

  • 数据对象中是否有First字段?
  • 尝试控制台记录数据并将其粘贴到此处
  • 是的,是的,是的,我在控制台记录了它,它首先返回 undefined,然后接下来,它实际上打印了该值,但到那时它已经呈现了视图
  • const data = await JSON.parse(value);
  • 在解析数据时使用异步等待
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 2020-03-15
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多