setState()重新加载整个页面,而不是仅重新呈现组件

时间:2018-06-03 07:55:32

标签: javascript reactjs components

我正在尝试更新组件中的表格。一旦我获得了该方法的新值,我将该值连接到数组并调用setState方法。但是,它不是仅重新渲染组件,而是重新加载整个页面并仅显示以前的数组值。

我的代码是这样的:

export default class DataSrcInfoFields extends React.Component {

constructor(props){
    super(props);

    this.state = {
        dataSrcFieldList : this.props.fields,
    };

    this.handleNewRowSubmit = this.handleNewRowSubmit.bind(this);
    this.handleRowRemoval = this.handleRowRemoval.bind(this);
}

handleNewRowSubmit(dataSrcFieldVal){
    const newList = this.state.dataSrcFieldList.concat(dataSrcFieldVal);

    this.setState({dataSrcFieldList: newList});
}

handleRowRemoval(field){

}

render(){
    return(
        <div>
            <div>
                <DataSrcInfoFieldList dsFieldList={this.state.dataSrcFieldList} onFieldRemove={this.handleRowRemoval} />
            </div>
            <div>
                <DataSrcInfoAddField onNewFieldSubmit={this.handleNewRowSubmit} />
            </div>
        </div>
    );
}

}

我试图在方法中打印新值(dataSrcFieldVal),因此没有问题。 newList数组也被创建,其中包含dataSrcFieldVal。我还在构造函数中绑定了handleNewRowSubmit方法。

任何人都可以帮我解决这个问题并告诉我哪里出错了?

谢谢!

0 个答案:

没有答案