diff --git a/packages/react-intl/src/components/message.tsx b/packages/react-intl/src/components/message.tsx index c147c28dec..201993561d 100644 --- a/packages/react-intl/src/components/message.tsx +++ b/packages/react-intl/src/components/message.tsx @@ -16,7 +16,7 @@ export interface Props< > extends MessageDescriptor { values?: V tagName?: React.ElementType - children?(...nodes: React.ReactNodeArray): React.ReactElement | null + children?(nodes: React.ReactNodeArray): React.ReactElement | null ignoreTag?: IntlMessageFormatOptions['ignoreTag'] } @@ -47,12 +47,8 @@ function FormattedMessage(props: Props) { ignoreTag, }) - if (!Array.isArray(nodes)) { - nodes = [nodes] - } - if (typeof children === 'function') { - return children(nodes) + return children(Array.isArray(nodes) ? nodes : [nodes]) } if (Component) { diff --git a/packages/react-intl/tests/unit/testUtils.tsx b/packages/react-intl/tests/unit/testUtils.tsx index 64fd93f68a..4368a8c0ec 100644 --- a/packages/react-intl/tests/unit/testUtils.tsx +++ b/packages/react-intl/tests/unit/testUtils.tsx @@ -6,7 +6,7 @@ export function mountFormattedComponentWithProvider

( Comp: React.ComponentType

) { return ( - props: P & {children?(...nodes: React.ReactNodeArray): React.ReactNode}, + props: P & {children?(nodes: React.ReactNodeArray): React.ReactNode}, providerProps: IntlConfig = {locale: 'en'} ) => { const result = render( @@ -22,7 +22,7 @@ export function mountFormattedComponentWithProvider

( const {rerender} = result const rerenderProps = ( newProps: P & { - children?(...nodes: React.ReactNodeArray): React.ReactNode + children?(nodes: React.ReactNodeArray): React.ReactNode } = props, newProviderProps: IntlConfig = providerProps ) =>