如何从AsyncStorage中删除一个项目?现在我正在尝试这个代码:
AsyncStorage.removeItem('userId');
但这对我不起作用。
2skhul331#
试试看:
async removeItemValue(key) { try { await AsyncStorage.removeItem(key); return true; } catch(exception) { return false; } }
bxjv4tth2#
这是我所做的,有一个类似的问题。它的工作很好,当你想删除一个项目的基础上,其id。确保每个项目有一个唯一的id。
remove_user = async(userid) => { try{ let usersJSON= await AsyncStorage.getItem('users'); let usersArray = JSON.parse(usersJSON); alteredUsers = usersArray.filter(function(e){ return e.id !== userid.id }) AsyncStorage.setItem('users', JSON.stringify(alteredUsers)); this.setState({ users:alteredUsers }) } catch(error){ console.log(error) } };
enxuqcxy3#
这看起来是正确的,但也许你试图从AsyncStorage读回太快了?它是异步的,所以更改不会立即应用,如果你试图在下面的行中获得它,你可能仍然会看到键。尝试用await调用AsyncStorage.removeItem,或者在回调中做你想做的事情。
AsyncStorage
await
AsyncStorage.removeItem
8nuwlpux4#
这个delete方法通过传递index从数组中删除对象(这里我称为 id)
async deleteData(id) { try { this.state.item.splice(id, 1); await AsyncStorage.setItem("mylist",JSON.stringify(this.state.item)) this.setState({ item: JSON.parse(await AsyncStorage.getItem("mylist")) }) } catch (error) { console.log(error); } };
并使用 onPress 方法调用它,这里我使用 button 和pass index
<Button onPress={this.deleteData.bind(this,index)}>delete</Button>
4zcjmb1e5#
这是AsyncStorage的框架代码。removeItem:
removeItem: function( key: string, callback?: ?(error: ?Error) => void ): Promise { return new Promise((resolve, reject) => { RCTAsyncStorage.multiRemove([key], function(errors) { var errs = convertErrors(errors); callback && callback(errs && errs[0]); if (errs) { reject(errs[0]); } else { resolve(null); } }); }); }
正如你在上面看到的,它需要一个键(你在asyncstorage中设置的要删除的项的名称)和一个回调函数。确保你有正确的键和参数,它应该能正常工作。
sauutmhj6#
使用removeItem()方法删除react中AsyncStorage的值。
removeItem()
try { await AsyncStorage.removeItem(key); console.log('Data removed') } catch(exception) { console.log(exception) }
rqmkfv5c7#
对于react-native,请尝试此操作
const deletCar = async () => { try { await AsyncStorage.removeItem('@storage_Key').then(() => { // props.navigation.navigate('same page name refresh '); /* setprevCar({ carNumner: '', carModel: '' }) return empty obj if deleted. */ }) } catch (exception) { return false; } }
inkz8wg98#
如果要删除选定列表:-
let key =[ 'visitorId', 'visitorMobile', 'visitorData', ] await AsyncStorage.multiRemove(key)
8条答案
按热度按时间2skhul331#
试试看:
bxjv4tth2#
这是我所做的,有一个类似的问题。它的工作很好,当你想删除一个项目的基础上,其id。确保每个项目有一个唯一的id。
enxuqcxy3#
这看起来是正确的,但也许你试图从
AsyncStorage
读回太快了?它是异步的,所以更改不会立即应用,如果你试图在下面的行中获得它,你可能仍然会看到键。尝试用await
调用AsyncStorage.removeItem
,或者在回调中做你想做的事情。8nuwlpux4#
这个delete方法通过传递index从数组中删除对象(这里我称为 id)
并使用 onPress 方法调用它,这里我使用 button 和pass index
4zcjmb1e5#
这是AsyncStorage的框架代码。removeItem:
正如你在上面看到的,它需要一个键(你在asyncstorage中设置的要删除的项的名称)和一个回调函数。确保你有正确的键和参数,它应该能正常工作。
sauutmhj6#
使用
removeItem()
方法删除react中AsyncStorage
的值。rqmkfv5c7#
对于react-native,请尝试此操作
inkz8wg98#
如果要删除选定列表:-