var array= [] class Body extends Component { state= { input: '', oprStatus: false, check: false, count: 0, oprArray: null } } 

ahora que sé que no puedo actualizar la matriz ‘oprArray’ dentro del estado usando push, entonces, ¿qué estaba pensando si qué declaro una variable fuera de la clase y actualizo esa matriz y luego actualizo el estado interno ‘oprArray’?

 array.push(2); this.setState({ oprArray: array )} 

Eso no resuelve el problema, porque aún estarías mutando en lugar de establecer un nuevo estado. Una vez que haya configurado oprArray: array en su estado la primera vez, el estado y la variable de array global apuntan a la misma matriz. La próxima vez, ese push está modificando el estado directamente, que es un no-no con el estado Reaccionar.

Para agregar un nuevo elemento a tu oprArray , hazlo así:

 this.setState(({oprArray}) ={amp}gt; ({oprArray: [...oprArray, 2]})); 

Ese:

  1. Utiliza la forma de devolución de llamada de setState , que es necesaria cuando se modifica el estado (un nuevo oprArray con la nueva entrada, 2 ) en función del estado existente (el contenido anterior de oprArray ).

  2. Crea una nueva matriz con el elemento adicional, mediante notación de propagación.

Ejemplo en vivo:

 const {Component} = React; class Body extends Component { state = { input: '', oprStatus: false, check: false, count: 0, oprArray: null }; componentDidMount() { // Since your state starts with `null`, I assume you receive initial data // via ajax or similar; emulated here with a timeout setTimeout(() ={amp}gt; { this.setState({oprArray: [0, 1]}); // Initial data isn't based on existing state // Now set up getting more data later setTimeout(() ={amp}gt; { // Additional data this.setState(({oprArray}) ={amp}gt; ({oprArray: [...oprArray, 2]})); }, 800); }, 800); } render() { const {oprArray} = this.state; return ( {amp}lt;div{amp}gt;oprArray: {oprArray ? oprArray.join(", ") : "(none)"}{amp}lt;/div{amp}gt; ); } } ReactDOM.render({amp}lt;Body /{amp}gt;, document.getElementById("root")); 
 {amp}lt;div id="root"{amp}gt;{amp}lt;/div{amp}gt; {amp}lt;script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.10.2/umd/react.production.min.js"{amp}gt;{amp}lt;/script{amp}gt; {amp}lt;script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.10.2/umd/react-dom.production.min.js"{amp}gt;{amp}lt;/script{amp}gt;