Экспорт свойства из дочерних компонентов в родительский компонент с использованием HOC - PullRequest
0 голосов
/ 24 октября 2019

Я хочу передать схему из дочерних компонентов, объединить схему и использовать ее в основном приложении (родительском уровне). В основном это yup-схема, находящаяся на уровне компонентов, которую необходимо объединить с компонентами и использовать в основном приложении.

Component1
const schema =  Yup.object().shape({Name:Yup.string().required()})
const comp1 = () => { 
}
Component2  
const schema =  Yup.object().shape({Age:Yup.string().required()})
const comp2 = () => {
}


<App validationSchmea={mergedSchemas}/>

Внутри приложения компоненты работают.

Hoc возьмет схемы и объединит их и экспортирует в основное приложение (родительский). Как лучше всего экспортировать схему с помощью HoC, а затем в главном приложении использовать HoC, чтобы получить всесхемы из всех компонентов.

The Logic to Merge Schemas :



import { emailSchema } from '../components/Email'
import { dateSchema } from '../components/DateofBirth'
import { nameSchema } from '../components/Name'
import { taxIdSchema } from '../components/TaxId'
import { phoneSchema } from '../components/Phone'
import { maritalSchema } from '../components/MartialStatus'
import { citizenSchema } from '../components/CitizenStatus'
import { addressSchema } from '../components/Address'



const mergeSchemas = (...schemas) => {
const [first, ...rest] = schemas;

const merged = rest.reduce(
    (mergedSchemas, schema) => mergedSchemas.concat(schema),
    first
);
return merged;
}

const mergedSchemas = mergeSchemas(emailSchema, dateSchema, nameSchema, 
taxIdSchema, phoneSchema, maritalSchema, citizenSchema, addressSchema)

export default mergedSchemas

Я ищу рекомендации по использованию Hoc от уровня компонентов до верхнего уровня. Есть предложения?

...