想要在不同的时间在 react formik 中呈现不同的值

Want to render different values at different time in react formik

如果我的 ID 为真,我想呈现一个值 如果 ID 为假,该值不应该存在,是否可以呈现什么值 formik

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} />
}

试试这个

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