Короткий ответ
Глядя на последнюю версию, теперь требуется свойство темы в FormThemeProvider, поэтому для решения вашей проблемы вы должны передать что-то для свойства темы
<FormThemeProvider theme={{}}>
<div className="my-app">
<BasicFormExample />
</div>
</FormThemeProvider>
Длинный ответ
Похоже, код изменился по сравнению с версией, которую вы использовали последней. Вы проделали работу, чтобы определить, какая версия является проблемой (0.9.4 - 0.10.0). Глядя на историю коммитов на репо , есть что-то об объекте темы в коммите для 0.10.0.
Looking at that указывается c изменение это Похоже, что FormThemeProvider больше не использует тему по умолчанию, вместо этого он ожидает, что тема будет передана.
Старый код в фиксации
const FormThemeProvider = ({ theme, children }) =>
<ThemeProvider theme={theme
? {
sizes: { ...defautTheme.sizes, ...theme.sizes },
colors: { ...defautTheme.colors, ...theme.colors },
typography: { ...defautTheme.typography, ...theme.typography },
breakpoints: { ...defautTheme.breakpoints, ...theme.breakpoints },
textLabels: { ...defautTheme.textLabels, ...theme.textLabels },
customValidationFunction: theme.customValidationFunction,
}
: defautTheme
}>
<React.Fragment>
{children}
<ToastContainer hideProgressBar autoClose={5000} />
</React.Fragment>
</ThemeProvider>
Новый код в фиксации
const FormThemeProvider = ({ theme, children }) => {
return (
<ThemeProvider theme={outerTheme => {
if (outerTheme) {
setIsRoot(true)
}
const parentTheme = outerTheme || defautTheme
const currentTheme = {
sizes: { ...parentTheme.sizes, ...theme.sizes },
colors: { ...parentTheme.colors, ...theme.colors },
typography: { ...parentTheme.typography, ...theme.typography },
breakpoints: { ...parentTheme.breakpoints, ...theme.breakpoints },
textLabels: { ...parentTheme.textLabels, ...theme.textLabels },
...parentTheme.customValidationFunction,
...theme.customValidationFunction,
}
return currentTheme
}}>
<React.Fragment>
{children}
<ToastContainer hideProgressBar autoClose={5000} />
</React.Fragment>
</ThemeProvider>
)
}
Старый код проверял входящую опору темы и, если бы она была нулевой, просто возвращала бы тему по умолчанию. Новый код требует, чтобы тема была чем-то другим, кроме undefined.
Если посмотреть на последнюю версию, это все еще так, поэтому для решения вашей проблемы вы должны передать что-то для свойства темы в FormThemeProvider.