【发布时间】:2021-05-11 01:08:47
【问题描述】:
我已经学习 React 几个星期了,我正在尝试创建一个显示表单的 React 应用程序,当提交时,它接受输入并创建一个 madlib 语句。但是,当我提交表单时,不会呈现 GenerateMadlib 组件。任何帮助表示赞赏! ./Madlib.js
const Madlib = () => {
const [formData, handleChange, resetFormData] = useFields({
noun: '',
noun2: '',
adjective: '',
color: ''
})
const handleSubmit = e => {
e.preventDefault();
resetFormData()
}
const generateMadlib = () => {
console.log("This line runs");
return <GenerateMadlib noun={formData.noun} noun2={formData.noun2} adjective={formData.adjective} color={formData.color} />
}
return (
<div className="Madlibs">
<h1>Madlibs!</h1>
<form
onSubmit={handleSubmit}>
<input
className="Madlibs-input"
type="text"
name="noun"
value={formData.noun}
placeholder="noun"
onChange={handleChange}/>
<input
className="Madlibs-input"
type="text"
name="noun2"
value={formData.noun2}
placeholder="nou2"
onChange={handleChange}/>
<input
className="Madlibs-input"
type="text"
name="adjective"
value={formData.adjective}
placeholder="adjective"
onChange={handleChange}/>
<input
className="Madlibs-input"
type="text"
name="color"
value={formData.color}
placeholder="color"
onChange={handleChange}/>
<button onClick={generateMadlib}>send</button>
</form>
</div>
)
}
./GenerateMadlib.js
const GenerateMadlib = ({noun, noun2, adjective, color}) => {
const madlib = Sentencer.configure({
nounList: [noun, noun2],
adjectiveList: [adjective, color]
});
return (
<>
<h1>Madlibs!</h1>
<p>{madlib}</p>
</>
)
}
【问题讨论】:
标签: javascript reactjs react-component