0

我的组件 Child 有一个可以明显改变的成员变量。但是,据我所知,我只能通过 PROPS 和 STATES。我知道我可以通过 PROPS 或其他参数传递我的成员变量,但是没有更漂亮的解决方案吗?

class Child extends React.Component<any,any> {
    private anyValue:string;
    constructor(props) {
        this.change = this.change.bind(this);
    }
    public render() {
        return (
            <input onChange={this.change} value={this.anyValue}/>
        );
    }
    private change(e:any) {
        this.anyValue = e.target.value;
    }
}
4

1 回答 1

0

这正是 state 的设计目的:

class Child extends React.Component<any,{anyValue: string}> {
    constructor(props) {
        super(props);
        this.change = this.change.bind(this);
    }
    public render() {
        return (
            <input onChange={this.change} value={this.state.anyValue}/>
        );
    }
    private change(e:any) {
        this.setState({anyValue: e.target.value});
    }
}

您唯一的其他选择是使用forceUpdate.

于 2018-07-25T15:56:16.193 回答