【发布时间】:2020-09-11 05:13:38
【问题描述】:
我正在尝试使用 react hook helper 构建注册页面。无法使用 SetForm 存储生成的 base64 字符串。也可以通过下一个和上一个来保留状态。谢谢您的回复。 项目链接:https://codesandbox.io/s/billowing-cherry-yvj90?file=/src/Second.js
MultiStepForm.js
import { useForm, useStep } from "react-hooks-helper"
const defaultData = {
FIRST_NAME: "",
LAST_NAME: "",
PHOTO: "",
const steps = [
{ id: 'details' },
{ id: 'photo' },
]
const RegistrationMultiStepForm = () => {
const [formData, setForm] = useForm(defaultData);
const props = { formData, setForm, navigation }
const { step, navigation } = useStep({
steps,
initialStep: 0
})
switch (step.id) {
case 'details':
return <Registration_First {...props} />
case 'photo':
return <Registration_Second {...props} />
}
Registration_First.js
const Registration_First = ({ formData, setForm, navigation }) => {
const { FIRST_NAME, LAST_NAME } = formData;
<input
placeholder='Enter your details'
type='text'
name="FIRST_NAME"
onChange={setForm}
value={FIRST_NAME} />
<button onClick={() => navigation.next()}
Registration_Second.js(在这里我无法设置照片的值..)。 {result} 是我试图添加到我的状态的 base64 图像字符串,即 setForm 用于分配 PHOTO 字段的值。
configuration same as Registration_First
const Cropped = () => {
// this does not work which is the correct way
setForm((previousState) => {
previousState.PHOTO = result
return previousState
})
//this works...wrong way
formData.PHOTO = result;
}
我的期望”:在使用 base64 字符串更新 {result} 值时,我想调用 setForm 操作并将 {result} 的值传递给我的 PHOTO 字段。
【问题讨论】:
标签: javascript arrays reactjs react-native react-hooks