gpt4 book ai didi

ruby-on-rails - 顺便说一下,我是一名学生,如何在汉堡菜单中的 React on Rails 中添加注销

转载 作者:行者123 更新时间:2023-12-04 17:41:18 25 4
gpt4 key购买 nike

我在 Rails 上使用 React,目前正在使用 ERB 组件注销。我正在为应用程序创建一个汉堡包菜单并将注销放在其中。目前它只是坐在开场外使用 <%= link_to "Logout", destroy_user_session_path, method: :delete %>在 rails 中。我想把它放在 React 组件中。请帮忙。我对在 Rails 上使用 React 还是个新手。代码如下。

import React, { Component } from 'react'

class MenuContent extends Component {
constructor(props) {
super(props)

}

render() {
return (
<div className="menu">
<div className="Logout">
I'm trying to add the JavaScript code here. Here how I'm doing it in Ruby.
<%= link_to "Logout", destroy_user_session_path, method: :delete %>
</div>

<p className="hint">Click outside the menu to close it, or swipe it closed on touch device</p>
</div>
)
}
}

export default MenuContent

这个^正在被导入到这里(下面)。它适用于其余的代码。
import React, {Component} from 'react'
import CheeseburgerMenu from "cheeseburger-menu";
import HamburgerMenu from "react-hamburger-menu";
import MenuContent from "./MenuContent";

class Navbar extends Component {
constructor(props) {
super(props);

this.state = {
menuOpen: false
};
}

openMenu() {
this.setState({ menuOpen: true });
}

closeMenu() {
this.setState({ menuOpen: false });
}
render(){
return(
<div>
<CheeseburgerMenu
isOpen={this.state.menuOpen}
closeCallback={this.closeMenu.bind(this)}>
<MenuContent closeCallback={this.closeMenu.bind(this)} />
</CheeseburgerMenu>

<HamburgerMenu
isOpen={this.state.menuOpen}
menuClicked={this.openMenu.bind(this)}
width={32}
height={24}
strokeWidth={3}
rotate={0}
color="black"
borderRadius={0}
animationDuration={0.5} />
</div>
)
}
}

export default Navbar

最佳答案

我使用此代码注销了工作。谢谢所有回复的人。

import React, { Component } from 'react'
import axios from 'axios'

// import './menuContent.scss'

class MenuContent extends Component {
constructor(props) {
super(props)
}
handleLogout = () => {
const link = document.createElement('a');
link.setAttribute('href', '/users/sign_out');
link.setAttribute('rel', 'nofollow');
link.setAttribute('data-method', 'delete');
document.body.appendChild(link);
link.click();
}

render() {
return (
<div className="grandMenu">
<div className="menu">
<div className="signButton"></div>
<button onClick={this.handleLogout}>Sign Out</button>
<p>hello world</p>
</div>
<p className="hint">
Click outside the menu to close it, or swipe it away.
</p>
</div>
)
}
}


export default MenuContent

附言我应该早点提到这一点。登录是通过 API 并使用 Devise。

关于ruby-on-rails - 顺便说一下,我是一名学生,如何在汉堡菜单中的 React on Rails 中添加注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54375537/

25 4 0