Javascript 如何使用react native fs?

Javascript 如何使用react native fs?,javascript,arrays,react-native,react-native-fs,Javascript,Arrays,React Native,React Native Fs,如果componentWillMount()函数第一次运行,items数组为空。为什么? componentWillMount() { items.splice(0, items.length); RNFS.readDir(RNFS.DocumentDirectoryPath) .then((result) => { console.warn('result: ', result); // debug for(var i = 0;

如果
componentWillMount()
函数第一次运行,
items
数组为空。为什么?

componentWillMount() {
    items.splice(0, items.length);
    RNFS.readDir(RNFS.DocumentDirectoryPath)
    .then((result) => {
        console.warn('result: ', result); // debug

        for(var i = 0; i < result.length; i++) {
            if(result[i].name.endsWith('.txt')) {
               var tmp = result[i].name;
               console.warn(tmp); // debug
               items.push(tmp);
            }
        }
    })
    .catch((err) => {
        console.log(err.message, err.code);
    });

    console.warn(items); // empty
}
render()
函数中,在
ScrollView

render() {
    return(
        ....
        <ScrollView>
            {
                items.map((items) => this.renderItem(items))
            }
        </ScrollView>
        ....
    );
}
render(){
返回(
....
{
items.map((items)=>this.renderItem(items))
}
....
);
}
试试:

componentWillMount() {
items.splice(0, items.length);
RNFS.readDir(RNFS.DocumentDirectoryPath)
.then((result) => {
    console.warn('result: ', result); // debug

    for(var i = 0; i < result.length; i++) {
        if(result[i].name.endsWith('.txt')) {
           var tmp = result[i].name;
           console.warn(tmp); // debug
           items.push(tmp);
        }

    }
    console.warn(items); // empty
})
.catch((err) => {
    console.log(err.message, err.code);
});


}
componentWillMount(){
项目.拼接(0,项目.长度);
readDir(RNFS.DocumentDirectoryPath)
。然后((结果)=>{
console.warn('result:',result);//调试
对于(变量i=0;i{
日志(err.message,err.code);
});
}

您的承诺异步运行=>console.warn在承诺解析之前被调用(.then(…)

您的console.warn在承诺解析之前被执行。
componentWillMount() {
items.splice(0, items.length);
RNFS.readDir(RNFS.DocumentDirectoryPath)
.then((result) => {
    console.warn('result: ', result); // debug

    for(var i = 0; i < result.length; i++) {
        if(result[i].name.endsWith('.txt')) {
           var tmp = result[i].name;
           console.warn(tmp); // debug
           items.push(tmp);
        }

    }
    console.warn(items); // empty
})
.catch((err) => {
    console.log(err.message, err.code);
});


}