我想使用本地/会话存储启动我的状态。这种方法有效吗?我试过但它给了我一个错误。如果没有,那么如何从存储中直接检索值到我的状态?
constructor(props) {
super(props);
sessionStorage.setItem('testkey','test value')
this.state = {
abc: sessionStorage.getItem('testkey')
}
}
错误始终未定义。
另外,如果我使用相反的方法,下面的代码可以正常工作
constructor(props) {
super(props);
this.state = {
abc: this.getItems(val)
}
this.getItems = this.getItems.bind(this);
}
getItems(value){
let selectedItem = value;
return selectedItem;
}
但是当我这样做时,它并没有。我无法从会话存储中获取值。
constructor(props) {
super(props);
this.state = {
abc: this.getItems(val)
}
this.getItems = this.getItems.bind(this);
}
getItems(val){
let setItem = sessionStorage.setItem('testkey', val);
let getItem = sessionStorage.getItem('testkey');
return getItem;
}
当我将getItem记录到我的控制台时,它会给我一个对象。可能是什么问题?
答案 0 :(得分:1)
我仍然不太清楚你的意思,但你必须使用this.setState()。
此功能接受json {' key':' value'} 一旦设置它就会更新状态。 你实际上不必在一个州内存储一个函数。
我不知道这是否是你使用getter和setter的东西。 使用setState设置变量值,然后使用this.state。[variable_name]。
检索它们希望这有帮助。
def borough_id(borough):
if 'Bronx' in borough:
return 5
elif ...
...
...
else:
return None
df['borough_num'] = df['Borough'].apply(lambda x: borough_id(x))
快乐的编码。