obteniendo error al exportar variable en reactjs
hola tengo este componente en react js:
import React from 'react';
import './Questions.css';
const Questions = (props) => {
let questions = Object.keys(props.slices).map((questionKey, i) => (
<li key={i}>
<p>{props.slices[questionKey].question}</p>
<div className="Answer">
<input
onChange={props.selectScore(questionKey)}
type="range"
min="1"
max="10"
value={props.slices[questionKey].transform === '1' ? '10' : props.slices[questionKey].transform.replace('0.','')}
className="rangeInput"
style={{background: props.slices[questionKey].fill}} />
<span className="Score" style={{backgroundColor: props.slices[questionKey].fill}}>
<div className="leftArrow" style={{borderRight: '5px solid ' + props.slices[questionKey].fill}}></div>
<span className="Score" style={{backgroundColor: props.slices[questionKey].fill}}>
{/* <div className="leftArrow" style={{borderRight: '5px solid ' + props.slices[questionKey].fill}}></div> */}
{props.slices[questionKey].transform === '1' ? '10' : props.slices[questionKey].transform.replace('0.','')}
</span>
</span>
</div>
</li>
));
return (
<>
My variable = {props.slices[2].transform === '1' ? '10' : props.slices[2].transform.replace('0.','')}
{questions}
</>
);
}
export default Questions;
Necesito exportar esta línea que está en la función de retorno: {props.slices[2].transform === '1' ? '10' : props.slices[2].transform.replace('0.','')}como una variable para usarla en otro componente.
así que hice esto:
export const V = (value) => (
value === {props.slices[2].transform === '1' ? '10' : props.slices[2].transform.replace('0.','')}
)
pero recibo este error: Token inesperado, esperado "," (47:20)
alguien podría ayudarme a exportar la variable. gracias de antemano
Respuestas
Como escribiste
necesito exportar esta línea que está en la función de retorno:
{props.slices[2].transform === '1' ? '10' : props.slices[2].transform.replace('0.','')}como una variable para usarla en otro componente
Supongo que no desea representar nada en este componente, sino que solo desea devolver algunos valores calculados. ¿Correcto? Si es así, entonces simplemente debería devolver los valores como este.
import React from 'react';
import './Questions.css';
const Questions = (props) => {
// better to use const instead of let, if you don't need to modify a variable...
const questions = Object.keys(props.slices).map((questionKey, i) => (
<li key={i}>
<p>{props.slices[questionKey].question}</p>
<div className="Answer">
<input
onChange={props.selectScore(questionKey)}
type="range"
min="1"
max="10"
value={props.slices[questionKey].transform === '1' ? '10' : props.slices[questionKey].transform.replace('0.','')}
className="rangeInput"
style={{background: props.slices[questionKey].fill}} />
<span className="Score" style={{backgroundColor: props.slices[questionKey].fill}}>
<div className="leftArrow" style={{borderRight: '5px solid ' + props.slices[questionKey].fill}}></div>
<span className="Score" style={{backgroundColor: props.slices[questionKey].fill}}>
{/* <div className="leftArrow" style={{borderRight: '5px solid ' + props.slices[questionKey].fill}}></div> */}
{props.slices[questionKey].transform === '1' ? '10' : props.slices[questionKey].transform.replace('0.','')}
</span>
</span>
</div>
</li>
));
const myVar = props.slices[2].transform === '1' ? '10' : props.slices[2].transform.replace('0.','');
return {myVar,questions};
}
export default Questions;
Y si devuelve los valores como este, return (<> ... some JSX ... </>);entonces será un JSX renderizado, que creo que no se puede exportar simplemente como variable para ser utilizado por otro componente.
Actualizar
Para usar myVar en otro componente, haga esto
import Questions from 'questions-file-name';
const selectScore= (key)=>{
// do something with score using key
}
const {myVar,questions} = Questions(slices,selectScore);