javascript - 在 React 中使用父 onClick 更改子类?

标签 javascript reactjs

我有多个父组件,每个父组件中都有嵌套的子组件。我希望在单击父组件中的链接时更改嵌套子组件中的类(显示/隐藏切换类型的东西)。我猜想这可以通过单击时在父组件中设置和更改状态来完成,但我不确定。这是处理这个问题的正确方法吗?

在根组件中保存状态通常是最佳实践吗(我应该注意,上面解释的父组件不是根组件)。

非常感谢任何帮助。谢谢!

最佳答案

通常,在组件层次结构中可以推送状态的越高越好。然后,随着父/根组件中的状态发生变化,新的 props 将滴落到子组件中。这使您的子组件更加简单,因为它们不必管理尽可能多的自身状态(如果有的话)。

就您而言,您是完全正确的。处理您父级中的点击事件,这将改变您的状态,然后根据该状态使用正确的类名渲染您的子组件。

var Child = React.createClass({
    render: function () {
        return <div {...this.props}></div>;
    }
});

var Parent = React.createClass({
    handleLinkClick: function (e) {
        this.setState({toggle: !this.state.toggle});
    },

    render: function () {
        return <Child className={this.state.toggle ? 'yes' : 'no'} />;
    }
});

关于javascript - 在 React 中使用父 onClick 更改子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32146050/

相关文章:

java - 通过深入研究 js 源代码来解决 HTML 的问题

javascript - 如何模拟 Highchart 上的点击

javascript - 从不断变化的 Action 创建者那里获取商店数据是常见的做法吗?

javascript - 如何设置映射输入的嵌套 JSON 数组对象的状态

javascript - React、获取 API 和过滤数据

javascript - 构建 "queryable"javascript/JSON 对象

javascript - node js,如何解析这样的字符串?

javascript - RxJS.Observable 是单子(monad)吗?

javascript - 每 5 秒加载一次随机 CSS 而无需刷新页面

html - 模式背景元素的正确 HTML 角色和其他相关属性 (TypeScript React)