#reactjs #class #return
#reactjs #класс #Возврат
Вопрос:
Я хочу установить условие для моей корзины, чтобы, когда длина корзины будет больше 0, она отображалась как компонент CartList и CartColumns. Однако он не может быть визуализирован. Я не знаю, что не так! Пожалуйста, помогите мне исправить мои коды! Большое вам спасибо!
Cart.js:
import CartList from "./cart/CartList"
const ProductContext = React.createContext();
export default class Cart extends React.Component {
render() {
return (
<div>
<ProductContext.Consumer>
{(value) => {
return <div>
if(cart.length>0){
return(
<div>
<CartColums/>
<CartList/>
</div>
)
}
</div>
}}
</ProductContext.Consumer>
</div>
);
}
}
Ссылка на песочницу для лучшего observation:https://codesandbox.io/s/why-cant-i-fetch-data-from-a-passed-value-forked-buz0u?file=/src/cart/Cart.js
Комментарии:
1. корзина не определена.
Ответ №1:
У вас просто была синтаксическая ошибка (которая была выделена ссылкой codesandbox кстати). Рассмотрите возможность использования редактора / IDE, который выделяет простые ошибки, подобные этой.
РЕДАКТИРОВАТЬ: чтобы подробнее остановиться на синтаксической ошибке: после {(value) => {return <div>
того, как вы вставили js, не заключив его в другую пару фигурных скобок. В этом случае решение состояло в том, чтобы return <div>
полностью удалить here, поскольку в этом не было необходимости.
import CartList from "./cart/CartList"
const ProductContext = React.createContext();
export default class Cart extends React.Component {
render() {
return (
<div>
<ProductContext.Consumer>
{(value) => {
if(cart.length>0){
return(
<div>
<CartColums/>
<CartList/>
</div>
)
}
}}
</ProductContext.Consumer>
</div>
);
}
}