如何在提交时保存React.Component的状态而不将其重置为默认值?

时间:2018-03-24 17:38:14

标签: reactjs events react-router

我的想法类似于投票系统:一些带有名称,数字和按钮的块。 当我按下按钮时,数字会递增,+ 1。名称来自州内的数组。我如何调用我的组件,createAPP只是一个setState:

<AppForm handleCreate={this.createAPP} />

我正在使用react-router进行路由:

<Link to="/">Home</Link>
<Route
    exact path="/"
    component={ListOfFrameworks}
/>

我想放置一个文本框,我可以在其中输入另一个名称,它会创建一个与其他框类似的框,具有相同的功能。

我正在使用一个表单,即onSubmit它存储到父状态的另一个名称。 它正确绘制所有内容,然后页面刷新并重置为原始数组。

<form onSubmit={() => this.submit} >

我的提交功能:

submit(e) {
    e.preventDefault();
    this.props.handleCreate(this.refs.name.value);
    this.refs.name.value = "";
}

如何保持页面不刷新,或者在刷新后保持状态?

2 个答案:

答案 0 :(得分:1)

preventDefault()方法中使用onSubmit方法来防止默认行为

onSubmit(e){
  e.preventDefault()
}

答案 1 :(得分:0)

public class Combinations { static int aux = 0; static int temp; static void findCombinations(int sum, int max,int min) { if(max <= 2) { if(max <= 0) { if(aux >= 3) { System.out.println("max: "+max); System.out.println("min: "+min); System.out.println("Aux:"+aux); System.out.println("-----------"); return; } else { System.out.println("max: "+max); System.out.println("min: "+min); System.out.println("Aux:"+aux); System.out.println("-----------"); aux = aux + 1; min = min - 1; findCombinations(sum, max, min); } } else { System.out.println("max: "+max); System.out.println("min: "+min); System.out.println("Aux:"+aux); System.out.println("-----------"); aux = aux + 1; max = max - 1; findCombinations(sum, max, min); } } else { System.out.println("max: "+max); System.out.println("min: "+min); System.out.println("Aux:"+aux); System.out.println("-----------"); max = max - 1; min = min + 1; findCombinations(sum, max, min); } } //Driver code public static void main(String a[]) { int n = 5; int max_bound = 3; int min_for_sum = n - max_bound; findCombinations(n,max_bound,min_for_sum); } } 功能中,添加对onSubmit

的通话
event.preventDefault()