我是React的新手,我正在尝试创建一个应用程序,我可以点击一个按钮,一个函数将运行倒计时器,但是如果我从onClick传递道具来开始这样的函数,onClick = {begin(props.subject) )}函数将在我单击之前运行.如果我使用带有begin而没有参数的onClick,则没有传递道具.我该如何解决这个问题?谢谢
import React from 'react';
import SubjectForm from './SubjectForm';
const EditSubject=(props)=>{
return(
<div>
<button onClick={begin}>start</button>
</div>)
};
const begin = (props)=> {
console.log(props.subject)
}
const mapStateToProps=()=>{};
export default connect(mapStateToProps)(EditSubject);
Run Code Online (Sandbox Code Playgroud)
另外,有没有办法或技巧在外部函数中使用begin函数内的变量?所以我可以制作一个暂停按钮来暂停开始功能中的seInterval.
谁能告诉我在我的主页组件上单击提交后如何清除所有输入?我尝试在 subjectForm 组件中的 preventdefault 之后使用 reset() 但是我用错了它或者它不起作用。我还尝试使用 setState 并将我的输入恢复为空的默认状态,但它也不起作用。
我的代码中的所有内容都可以正常工作,但是每次我提交主题时,该字段都不会自行清除
这是我的主页组件。
import React from 'react';
import SubjectForm from './SubjectForm';
import {addSubject} from '../actions/subjectAction';
import {connect} from 'react-redux';
const HomePage=({dispatch})=>(
<div>
<SubjectForm onSubmit ={(subject)=>
dispatch(addSubject(subject))
}/>
</div>
)
export default connect()(HomePage);
Run Code Online (Sandbox Code Playgroud)
这是我的 subjectForm 组件
import React from 'react';
export default class SubjectForm extends React.Component{
constructor(props){
super(props);
this.state={...}
onNameChange =(e)=>{...}
onHourChange =(e)=>{...}
onSubmit=(e)=>{
e.preventDefault();
**//I tried using reset() here but it did not work**
if(!this.state.subjectName){...}
render(){
return (
<div>
{this.state.error && <p>{this.state.error}</p>} …Run Code Online (Sandbox Code Playgroud)