Javascript 在类组件方法中使用函数组件

Javascript 在类组件方法中使用函数组件,javascript,reactjs,Javascript,Reactjs,我没有语法错误,代码编译得很好,但是调用的函数组件“SuccessfulModal”从未被呈现 我的功能组件 我的类组件 渲染方法 问题是你只是在一个方法上返回它 相反,请尝试将“添加到状态showmodel”添加为false,然后在请求和设置showmodel:true时,在渲染方法中添加,如果showmodel为true,则渲染`: state = { open: false, revisionId: "", showModal: false } saveOnClick = (

我没有语法错误,代码编译得很好,但是调用的函数组件“SuccessfulModal”从未被呈现

我的功能组件 我的类组件 渲染方法
问题是你只是在一个方法上返回它

相反,请尝试将“添加到状态showmodel”添加为false,然后在请求和设置showmodel:true时,在渲染方法中添加,如果showmodel为true,则渲染`:

state = {
  open: false,
  revisionId: "",
  showModal: false
}

saveOnClick = () => {
  axios.put('http://localhost:8080/lagbevakning/revision/revisionsubscription', {
    revisionId: 36,
  })
    .then((response) => {
      console.log(response) /* Gets called */
      this.setState({
        open: false,
        showModal: true
      })  /* Gets called */
    })

  render(){
    const { showModal } = this.state;

    return (
      { showModal && <SuccessfulModal />}
    )
}```

问题是你只是在一个方法上返回它

相反,请尝试将“添加到状态showmodel”添加为false,然后在请求和设置showmodel:true时,在渲染方法中添加,如果showmodel为true,则渲染`:

state = {
  open: false,
  revisionId: "",
  showModal: false
}

saveOnClick = () => {
  axios.put('http://localhost:8080/lagbevakning/revision/revisionsubscription', {
    revisionId: 36,
  })
    .then((response) => {
      console.log(response) /* Gets called */
      this.setState({
        open: false,
        showModal: true
      })  /* Gets called */
    })

  render(){
    const { showModal } = this.state;

    return (
      { showModal && <SuccessfulModal />}
    )
}```

axios请求中提供给的函数返回的内容不会用于组件渲染

您可以改为更改一段状态,并在render方法中使用该状态来确定是否应渲染SuccessfulModal组件

范例

const{useffect}=React; 函数成功模式{ 常量hello==>{ 欢迎:; }; 你好,[]; 返回成功模式; } 类确认模式扩展了React.Component{ 状态={ 开放:假 }; 组件安装{ 设置超时=>{ this.setState{open:true}; }, 1000; } 渲染{ 返回this.state.open?:空; } } ReactDOM.render、document.getElementByIdroot;
axios请求中提供给的函数返回的内容不会用于组件渲染

您可以改为更改一段状态,并在render方法中使用该状态来确定是否应渲染SuccessfulModal组件

范例

const{useffect}=React; 函数成功模式{ 常量hello==>{ 欢迎:; }; 你好,[]; 返回成功模式; } 类确认模式扩展了React.Component{ 状态={ 开放:假 }; 组件安装{ 设置超时=>{ this.setState{open:true}; }, 1000; } 渲染{ 返回this.state.open?:空; } } ReactDOM.render、document.getElementByIdroot;
我认为问题在于返回元素而不是渲染它。它需要在DOM上渲染,因为它没有render方法。在你的情况下,如果你必须做一个渲染,你会这样做

请执行npm安装react dom,然后,如果您使用ES6,您可以执行以下操作:

import ReactDOM from 'react-dom';
或者,如果您正在使用ES5,您可以:

var ReactDOM = require('react-dom')
我会把最后一行改成

ReactDOM.render(<SuccessfulModal/>, document.getElementById('root'); 

现在,假设root是应用程序的主div,元素就可以呈现了

我认为问题在于返回元素而不是渲染它。它需要在DOM上渲染,因为它没有render方法。在你的情况下,如果你必须做一个渲染,你会这样做

请执行npm安装react dom,然后,如果您使用ES6,您可以执行以下操作:

import ReactDOM from 'react-dom';
或者,如果您正在使用ES5,您可以:

var ReactDOM = require('react-dom')
我会把最后一行改成

ReactDOM.render(<SuccessfulModal/>, document.getElementById('root'); 

现在,假设root是应用程序的主div,元素就可以呈现了

这不是React的工作方式。。。。。。如果您的类中没有呈现方法,那么将无法呈现任何内容。请显示呈现方法以确认它是否存在-如果您不向我们显示所呈现的内容,则无法知道为什么呈现错误!对不起,请换个新的形象。这不是React的工作原理。。。。。。如果您的类中没有呈现方法,那么将无法呈现任何内容。请显示呈现方法以确认它是否存在-如果您不向我们显示所呈现的内容,则无法知道为什么呈现错误!对不起,请换个新的形象。