Я хочу передать компонент и отобразить его внутри другого через редукцию. Я делаю что-то вроде этого:
Компоненттодиспатч.js
const ComponentToDispatch = (props) => {
return (<div>Propagate me {props.anthem}</div> {/* props.anthem = undefined, unlike what I expect.*/}
);
};
export {ComponentToDispatch};
В следующем компоненте у меня есть кнопка, которая отправляет ранее определенную.
BruitEvent.js
// code above
`import {ComponentToDispatch} from "./ComponentToDispatch";
import {showComponentAction} from "./actions";
const BruitEvent =()=>{
const dispatch = useDispatch();
return (<button onClick={(evt)=>dispatch(showComponentAction(ComponentToDispatch)}>
Click to dispatch</button>);
};`
Действие, которое запускает это событие: action.js
`
export function ShowComponentAction(Component) {
return {
type: SHOW_ACTION,
payload: {
component: <Component />,
},
};
}`
Наконец, я могу отобразить распространяемый компонент:
const DispayComponent = () =>{
const { component} = useSelector((state) => {
if (state.testDisplay) {
return {
component: state.testDisplay.component,
};
}
return { component: null };
});
useInjectReducer({ key: "testDisplay", reducer });
return (<div>{component}</div>);
}
export {DisplayComponent};
Пока все хорошо, спасибо Дэвиду Хеллсингу за его понимание, я могу отобразить каждую статическую вещь, находящуюся в `ComponentToDispatch', но он не может обрабатывать реквизит.