为什么我不能在react js中调用函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我不能在react js中调用函数相关的知识,希望对你有一定的参考价值。

为什么我不能编写函数并使用react.js中的按钮调用函数?在此代码中,我要单击按钮,弹出警报并说调查已提交。我该怎么办?

function finish()
    alert('Survey Submitted! Thank you');    



function Task3()


    return(
        <div className="head">
          <h1>Experiment</h1>
          <h3>Task 3</h3>
          <p>In Task 3, you will see the right answer of your guess. </p>
          <div className="video">
          <div> <MultiStep steps=steps/> </div>

          </div>
         <button className="task3-finish" onSubmit = finish >Finish Thanks!</button>

          </div>

    )





export default Task3

答案

您是要使用onClick吗?因为应该在onSubmit元素上使用<form>

<form onSubmit = () => finish() > 
</form>

<button onClick = () => finish() > 
</button>
另一答案

function Task3()

finish()
    alert('Survey Submitted! Thank you');    



    return(
        <div className="head">
          <h1>Experiment</h1>
          <h3>Task 3</h3>
          <p>In Task 3, you will see the right answer of your guess. </p>
          <div className="video">
          <div> <MultiStep steps=steps/> </div>

          </div>
         <button className="task3-finish" type="button" value="Submit" onClick= this.finish >Finish Thanks!</button>

          </div>);





export default Task3

我认为这会有所帮助。

另一答案

您需要将新功能作为道具传递。然后您可以调用新功能。

您的功能组件可能看起来像这样。 (我注释了一些代码,并将onsubmit更改为onclik)

Task3.js

    import React from "react";

function Task3(props) 
  return (
    <div className="head">
      <h1>Experiment</h1>
      <h3>Task 3</h3>
      <p>In Task 3, you will see the right answer of your guess. </p>
      <div className="video">
        /* <div>
          " "
          <MultiStep steps=steps />" "
        </div> */
      </div>
      <button className="task3-finish" onClick=props.callTask3Prop>
        Finish Thanks!
      </button>
    </div>
  );


export default Task3;

App.js

import React,  Component  from "react";
import Task3 from "./Task3";

class App extends Component 
  callTask3() 
    alert("Task3 call...");
  

  render() 
    return (
      <div className="App">
        <Task3 callTask3Prop=this.callTask3 />
      </div>
    );
  


export default App;

我在这里添加了一个工作示例,example

以上是关于为什么我不能在react js中调用函数的主要内容,如果未能解决你的问题,请参考以下文章

在应用 applyMiddleware(thunk) 得到“不能将类作为函数调用”时,在反应 js 中

DangerouslySetInnerHTML 与 React.JS 中的本地图像

从 React.js 中的另一个类组件调用函数

如何修复“RealmObject 不能作为函数调用”realm-js 错误?

无法将类作为函数调用,如果我使用 es6 格式,React 路由器会在控制台中显示错误

在 utils.js 文件(React-Native)中调用异步函数?