gpt4 book ai didi

javascript - React JS 一种数据流困惑的方式

转载 作者:行者123 更新时间:2023-11-29 15:25:35 26 4
gpt4 key购买 nike

这是我想使用 reactJS 实现的 jquery 解决方案

var offCanvass = function() {
$('body').on('click', '.js-fh5co-nav-toggle', function(event) {

var $this = $(this);

$('#fh5co-offcanvass').toggleClass('fh5co-awake');
$('#fh5co-page, #fh5co-menu').toggleClass('fh5co-sleep');

if ($('#fh5co-offcanvass').hasClass('fh5co-awake')) {
$this.addClass('active');
} else {
$this.removeClass('active');
}
event.preventDefault();

});
};

我能做的是:通过使用状态和类名,我可以在该组件内的事件上更改特定组件的 CSS 类。

var classNames = require('classnames');
export default class App extends React.Component {

render() {
var navClass = classNames({
'js-fh5co-nav-toggle': true,
'fh5co-nav-toggle': true,

});
return (
<div>
<Offcanvas/>
<Menu navClass={navClass}/>
<Page/>
</div>
);
}
}

export default class Menu extends React.Component {
constructor(){
super();
this.state={
isPressed: false,
};
}

isPressed(){
if(!this.state.isPressed){
this.setState({isPressed: true});
}else{
this.setState({isPressed: false});
}
}

render() {
var navClass = classNames(this.props.navClass, {
active: this.state.isPressed
});
return (
<div id="fh5co-menu" class="navbar">
<div class="container">
<div class="row">
<div class="col-md-12">
<a class={navClass} data-toggle="collapse" onClick={this.isPressed.bind(this)} data-target="#fh5co-navbar" aria-expanded="false" aria-controls="navbar"><span></span> <i></i></a>
<a href="/index" class="navbar-brand"><span>dota groove<a class=""></a></span></a>
</div>
</div>
</div>
</div>
);
}
}

export default class Canvas extends React.Component {


render(){
return(
<div id="fh5co-offcanvass">
<ul>
<li class="active"><a href="" data-nav-section="home">Home</a></li>
<li><a href="" data-nav-section="login">Register</a></li>
<li><a href="" data-nav-section="clients">Login</a></li>
</ul>
</div>
);
}
}

我想做的:使用一个组件的事件来触发另一个不在自上而下层次结构中的组件的类名更改。这是我的组件结构。

-app
-canvas ->classname apends here
-menu ->if click event occurs here
-page

最佳答案

以下模式适合您吗?

子组件(menu)通过点击事件改变其父组件(app)的状态。然后父级通过 prop 将更新后的状态发送给它的另一个子级 (canvas)。

这是描述此模式的简短代码学院练习:https://www.codecademy.com/en/courses/react-102/lessons/child-updates-sibling/exercises/child-updates-sibling-intro

关于javascript - React JS 一种数据流困惑的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39586239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com