javascript - ReactJS 调用父方法

标签 javascript reactjs

我正在迈出 ReactJS 的第一步,并试图理解 parent 和 child 之间的交流。 我正在制作表格,所以我有样式字段的组件。而且我还有包含字段并检查它的父组件。示例:

var LoginField = React.createClass({
    render: function() {
        return (
            <MyField icon="user_icon" placeholder="Nickname" />
        );
    },
    check: function () {
        console.log ("aakmslkanslkc");
    }
})

var MyField = React.createClass({
    render: function() {
...
    },
    handleChange: function(event) {
//call parent!
    }
})

有什么办法吗?我的逻辑在 reactjs“世界”中是否合适?感谢您的宝贵时间。

最佳答案

为此,您将回调作为属性从父级向下传递给子级。

例如:

var Parent = React.createClass({

    getInitialState: function() {
        return {
            value: 'foo'
        }
    },

    changeHandler: function(value) {
        this.setState({
            value: value
        });
    },

    render: function() {
        return (
            <div>
                <Child value={this.state.value} onChange={this.changeHandler} />
                <span>{this.state.value}</span>
            </div>
        );
    }
});

var Child = React.createClass({
    propTypes: {
        value:      React.PropTypes.string,
        onChange:   React.PropTypes.func
    },
    getDefaultProps: function() {
        return {
            value: ''
        };
    },
    changeHandler: function(e) {
        if (typeof this.props.onChange === 'function') {
            this.props.onChange(e.target.value);
        }
    },
    render: function() {
        return (
            <input type="text" value={this.props.value} onChange={this.changeHandler} />
        );
    }
});

在上面的例子中,Parent电话 Child属性为 valueonChange . Child作为返回绑定(bind) onChange标准处理程序 <input />元素并将值传递到 Parent的回调,如果它被定义。

因此 ParentchangeHandler方法被调用,第一个参数是来自 <input /> 的字符串值Child 中的字段.结果是 Parent的状态可以用那个值更新,导致父级的 <span />Child 中键入新值时更新元素的输入字段。

关于javascript - ReactJS 调用父方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26176519/

相关文章:

javascript - CasperJS/PhantomJS .then 在 do/while 循环中不起作用

javascript - 在 ES6 中将值存储在 Map 中的回调函数

javascript - XPATH获取所选节点的根节点

reactjs - 如何使用 Formik 和 yup validationSchema 显示表单错误摘要

javascript - 哪种是本地化的最佳实践?通过使用数据库以及 war 之外保存的缓存或属性文件

javascript - 如何限制输入仅接受数字?

javascript - Angular Material 日期选择器格式语言环境

reactjs - 仅当文件类型更改时,react-file-viewer 才会重新渲染

ios - 启动react-native run-ios时Native-Module不能为Null

css - 如何将文本放在右侧的 ListItem 中?