I'm having an issue pushing a component into an array with React, code as follows:
import React, { useState } from 'react';
import NewPageSidebar from '../NewPageSidebar/NewPageSidebar';
import NewPageContent from '../NewPageContent/NewPageContent';
import TextBlock from '../TextBlock/TextBlock';
const NewPage = () => {
const [blocks, setBlocks] = useState([]);
const textButtonHandler = () => {
const key = blocks.length;
let array = blocks;
array.push(<TextBlock key={key} />);
setBlocks(array);
// This works
// setBlocks(<TextBlock key={key} />);
};
const imageButtonHandler = () => {
};
const spacingButtonHandler = () => {
};
return (
<div className="d-flex">
<NewPageSidebar
textButtonHandler={textButtonHandler}
imageButtonHandler={imageButtonHandler}
spacingButtonHandler={spacingButtonHandler}
/>
<NewPageContent blocks={blocks} />
</div>
);
};
export default NewPage;
For some reason setting an array directly setBlocks(<TextBlock key={key} />); works but the push doesn't. What am I doing wrong here?