栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Uncaught TypeError:无法读取未定义的属性“状态或道具”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Uncaught TypeError:无法读取未定义的属性“状态或道具”

您可以使用箭头功能来绑定您的功能。您需要在子组件和父组件中都绑定功能。

上级:

export default class Parent extends Component {    constructor(props) {        super(props);        this.state = { pre: ''        };    }    setCodeChange = (newCode) => {        this.setState({pre: newCode});    }    login = () => {        if (this.state.pre == "") { // Some functionality        }    }    render() {        return ( <div>     <Child onCodeChange={this.setCodeChange} onLogin={this.login} /> </div>        );    }}

儿童

export default class Child extends Component {    constructor(props) {        super(props);    }    handleCodeChange = (e) => {        this.props.onCodeChange(e.target.value);    }    login = () => {        this.props.onLogin();    }    render() {        return ( <div>     <input name="pre" onChange={this.handleCodeChange}/> </div> <button id="login" onClick={this.login}>        );    }}Child.propTypes = {    onCodeChange: React.PropTypes.func,    onLogin: React.PropTypes.func};

还有其他绑定功能的方法,例如您正在使用的一种,但您也需要对父组件进行绑定,例如

<ChildonCodeChange={this.setCodeChange.bind(this)} onLogin={this.login.bind(this)}/>

或者您可以在构造函数中指定绑定为

上级:

constructor(props) {    super(props);    this.state = {        pre: ''    }; this.setCodeChange = this.setCodeChange.bind(this); this.login = this.login.bind(this);}

儿童

constructor(props) {    super(props);    this.handleCodeChange = this.handleCodeChange.bind(this);    this.login = this.login.bind(this);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/397991.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号