Reactjs 要在react formik中的不同时间渲染不同的值吗

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 || '',

我想呈现一个值如果我的Id为true如果Id为false该值不应该存在,可以呈现什么值吗

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);