Reactjs React中的到达类方法(类内函数)
各位。 我正试图写一个简单的程序,它会导致“嗨”这个词出现在屏幕上。 这是密码Reactjs React中的到达类方法(类内函数),reactjs,function,class,Reactjs,Function,Class,各位。 我正试图写一个简单的程序,它会导致“嗨”这个词出现在屏幕上。 这是密码 import React from 'react'; import ReactDOM from 'react-dom'; class Button extends React.Component { Hi = () => { return <h1>Hi</h1> } state = { showSayHi: false }
import React from 'react';
import ReactDOM from 'react-dom';
class Button extends React.Component {
Hi = () => {
return <h1>Hi</h1>
}
state = {
showSayHi: false
}
sayHi = () => {
this.setState({
showSayHi: true
}) ;
}
render() {
const { showSayHi } = this.state;
return (
<div>
{this.state.showSayHi ? Hi() : null}
<button type="submit" onClick={this.sayHi}>Press me</button>
</div>
)
}
}
export default Button;
ReactDOM.render(<Button />, document.getElementById('root'));
从“React”导入React;
从“react dom”导入react dom;
类按钮扩展了React.Component{
嗨=()=>{
回电
}
状态={
showSayHi:错
}
sayHi=()=>{
这个.setState({
showSayHi:是的
}) ;
}
render(){
const{showSayHi}=this.state;
返回(
{this.state.showSayHi?Hi():null}
按我
)
}
}
导出默认按钮;
ReactDOM.render(,document.getElementById('root'));
有一个版本,Hi函数不是全局定义的,但我不知道如何全局定义函数。
问题似乎在于Hi函数或它在三元运算符中的调用。
有人能帮我把这件事做好吗?你可以通过类组件中的this.methodName访问你的方法。
{this.state.showSayHi?this.Hi():null}
将Hi定义为功能组件
function Hi(props) {
return(
<h1>Hi !</h1>
)
}
功能Hi(道具){
返回(
你好
)
}
若要全局使用此组件,请将此代码移动到文件中,然后通过从文件中导出此代码导入Hi。您可以通过类组件中的this.methodName访问方法。
{this.state.showSayHi?this.Hi():null}
将Hi定义为功能组件
function Hi(props) {
return(
<h1>Hi !</h1>
)
}
功能Hi(道具){
返回(
你好
)
}
若要全局使用此组件,请将此代码移动到文件中,然后通过从文件中导出此代码导入Hi。看起来您忘记了此。 在这里:
你好像忘了这个。 在这里:
请把它改成这个.Hi()在这个.state.showSayHi?Hi():null请在this.state.showSayHi中将其设为.Hi()?Hi():null如果您只想让Hi显示在屏幕上,则不需要两个组件:
export default class App extends Component {
state = { showHi: false };
showHi = () => this.setState({ showHi: !this.state.showHi });
render() {
return (
<div>
<div>
{this.state.showHi ? 'Hi' : null}
<button onClick={this.showHi}>Toggle Hi</button>
</div>
</div>
);
}
}
导出默认类应用程序扩展组件{
state={showHi:false};
showHi=()=>this.setState({showHi:!this.state.showHi});
render(){
返回(
{this.state.showHi?'Hi':null}
切换Hi
);
}
}
如果您只想让Hi出现在屏幕上,则不需要两个组件:
export default class App extends Component {
state = { showHi: false };
showHi = () => this.setState({ showHi: !this.state.showHi });
render() {
return (
<div>
<div>
{this.state.showHi ? 'Hi' : null}
<button onClick={this.showHi}>Toggle Hi</button>
</div>
</div>
);
}
}
导出默认类应用程序扩展组件{
state={showHi:false};
showHi=()=>this.setState({showHi:!this.state.showHi});
render(){
返回(
{this.state.showHi?'Hi':null}
切换Hi
);
}
}
还有另一个解决方案
您可以保留Hi(),而无需执行以下操作:
{this.state.showSayHi ? Hi() : null}
但是,为了保持这种状态,必须将函数Hi()从类中取出。像这样:
const Hi = () => {
return <h1>Hi</h1>
}
class Button extends React.Component {
state = {
showSayHi: false
}
sayHi = () => {
this.setState({
showSayHi: true
}) ;
}
render() {
const { showSayHi } = this.state;
return (
<div>
{this.state.showSayHi ? Hi() : null}
<button type="submit" onClick={this.sayHi}>Press me</button>
</div>
)
}
const Hi=()=>{
回电
}
类按钮扩展了React.Component{
状态={
showSayHi:错
}
sayHi=()=>{
这个.setState({
showSayHi:是的
}) ;
}
render(){
const{showSayHi}=this.state;
返回(
{this.state.showSayHi?Hi():null}
按我
)
}
我不鼓励您这样做(除非您还想在类外使用函数Hi())。我只是想向您展示这个解决方案也可以工作。如果您将它与比较,您将了解单词this在类中是如何工作的。还有另一个解决方案 您可以保留Hi(),而无需执行以下操作:
{this.state.showSayHi ? Hi() : null}
但是,要保持这种状态,必须将函数Hi()从类中取出。如下所示:
const Hi = () => {
return <h1>Hi</h1>
}
class Button extends React.Component {
state = {
showSayHi: false
}
sayHi = () => {
this.setState({
showSayHi: true
}) ;
}
render() {
const { showSayHi } = this.state;
return (
<div>
{this.state.showSayHi ? Hi() : null}
<button type="submit" onClick={this.sayHi}>Press me</button>
</div>
)
}
const Hi=()=>{
回电
}
类按钮扩展了React.Component{
状态={
showSayHi:错
}
sayHi=()=>{
这个.setState({
showSayHi:是的
}) ;
}
render(){
const{showSayHi}=this.state;
返回(
{this.state.showSayHi?Hi():null}
按我
)
}
我不鼓励您这样做(除非您还想在类外使用函数Hi())。我只是想向您展示这个解决方案也可以工作。如果您将它与比较,您将了解单词this在类中是如何工作的