admin管理员组文章数量:1434921
I want to reset the state of only certain (not all) states.
On the click of a button, values of present_count
, total_count
, present
and total
should be set to their initial state (0). While the state of subjects
and text
should remain intact.
constructor(props) {
super(props);
this.state = {
subjects: [],
text: "",
present_count: [0, 0, 0, 0, 0, 0, 0],
total_count: [0, 0, 0, 0, 0, 0, 0],
present: 0,
total: 0
}
}
EDIT:
I am using AsyncStorage
to save the modified state.
I want to reset the state of only certain (not all) states.
On the click of a button, values of present_count
, total_count
, present
and total
should be set to their initial state (0). While the state of subjects
and text
should remain intact.
constructor(props) {
super(props);
this.state = {
subjects: [],
text: "",
present_count: [0, 0, 0, 0, 0, 0, 0],
total_count: [0, 0, 0, 0, 0, 0, 0],
present: 0,
total: 0
}
}
EDIT:
I am using AsyncStorage
to save the modified state.
3 Answers
Reset to default 2You can use spread operator to override the current state values and then use the current state value of text
, subjects
:
// default state
const defaultState = {
subjects: [],
text: "",
present_count: [0, 0, 0, 0, 0, 0, 0],
total_count: [0, 0, 0, 0, 0, 0, 0],
present: 0,
total: 0
}
// ponent constructor.
constructor(props) {
super(props);
this.state = { ...defaultState };
}
// click event handler
handleClick = () => {
this.setState({
...defaultState,
subjects: this.state.subjects,
text: this.state.text
});
}
You can create an object store your state your initial state of states you want to reset, like this:
const initState = {
total: 0,
present: 0,
present_count: [0, 0, 0, 0, 0, 0, 0],
total_count: [0, 0, 0, 0, 0, 0, 0],
}
and then you can
this.setState({
...initialState
})
on your button onClick
Hope that help. ^^
Using the spread operator would likely be useful here.
constructor(props) {
super(props);
this.defaultState = {
present_count: [0, 0, 0, 0, 0, 0, 0],
total_count: [0, 0, 0, 0, 0, 0, 0],
present: 0,
total: 0
}
this.state = {
subjects: [],
text: "",
...defaultState,
}
}
.
.
.
onClick = () => {
this.setState({
...this.defaultState, // This will only pass in values from your defaultState and leave the others (subjects & text) alone
});
}
本文标签: javascriptReset component state in React NativeStack Overflow
版权声明:本文标题:javascript - Reset component state in React Native - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745628946a2667149.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论