Reactjs 要在react formik中的不同时间渲染不同的值吗
我想呈现一个值如果我的Id为true如果Id为false该值不应该存在,可以呈现什么值吗Reactjs 要在react formik中的不同时间渲染不同的值吗,reactjs,if-statement,render,formik,Reactjs,If Statement,Render,Formik,我想呈现一个值如果我的Id为true如果Id为false该值不应该存在,可以呈现什么值吗 initialValues={{ id:currentBankData.id || '', name: currentBankData.name || '', address: currentBankData.address || '',
initialValues={{
id:currentBankData.id || '',
name: currentBankData.name || '',
address: currentBankData.address || '',
country: currentBankData.country || '',
region: currentBankData.region || '',
city: currentBankData.city || '',
swiftCode: currentBankData.swiftCode || '',
routeCode: currentBankData.routeCode || '',
//Example want to do something like this
if(Id){
imageBinairyData: currentBankData.image ||'' ,
}else{
image: currentBankData.image || '',
}
}}
我想你可以这样做:
<Form
initialValues={{
id:currentBankData.id || '',
name: currentBankData.name || '',
address: currentBankData.address || '',
country: currentBankData.country || '',
region: currentBankData.region || '',
city: currentBankData.city || '',
swiftCode: currentBankData.swiftCode || '',
routeCode: currentBankData.routeCode || '',
imageBinairyData: !Id ? undefined : currentBankData.image || '' ,
image: Id ? undefined : currentBankData.image || '',
}}
/>
或者,您可以在传入之前有条件地创建值:
render () {
const initialValues = {
id:currentBankData.id || '',
name: currentBankData.name || '',
address: currentBankData.address || '',
country: currentBankData.country || '',
region: currentBankData.region || '',
city: currentBankData.city || '',
swiftCode: currentBankData.swiftCode || '',
routeCode: currentBankData.routeCode || '',
};
if (Id) {
initialValues.imageBinairyData = currentBankData.image || '';
} else {
initialValues. image = currentBankData.image || '';
}
return <Form initialValues={initialValues} />
}
render(){
常量初始值={
id:currentBankData.id | |“”,
名称:currentBankData.name | |“”,
地址:currentBankData.address | |“”,
国家:currentBankData.country | |“”,
地区:currentBankData.region | |“”,
城市:currentBankData.city | |“”,
swiftCode:currentBankData.swiftCode | |“”,
routeCode:currentBankData.routeCode | |“”,
};
如果(Id){
initialValues.imageBinairyData=currentBankData.image | |“”;
}否则{
initialValues.image=currentBankData.image | |“”;
}
返回
}
试试这个
//Example want to do something like this
[Id ? 'imageBinairyData' : 'image']: currentBankData.image || '',
因此,您的代码可能看起来像
initialValues={{
id:currentBankData.id || '',
name: currentBankData.name || '',
address: currentBankData.address || '',
country: currentBankData.country || '',
region: currentBankData.region || '',
city: currentBankData.city || '',
swiftCode: currentBankData.swiftCode || '',
routeCode: currentBankData.routeCode || '',
[Id ? 'imageBinairyData' : 'image']: currentBankData.image || '',
}}
如何将值传递给现有初始值请详细说明-什么是“将值传递给现有初始值”?与上面的初始值一样,它们是呈现值然后添加值的一种方法吗?您可以将值设置为彼此之间的值,如routeCode=swiftCode@ChrisJnrPotgieter,我不明白你的意思。你能提供更多的细节吗?我知道我想使用FormicContext,比如这个setTest(captureForm.values.imageBinairyData.data);