У меня есть 3 элемента [«еда», «напитки», «одежда»] в качестве категории, я хочу, чтобы еда была выбрана по умолчанию на вкладке, когда пользователь загружает страницу в первый раз. Как я могу это сделать

#reactjs #react-hooks

Вопрос:

У меня есть 3 пункта [«еда»,»напитки»,»одежда»] в качестве категории.На кнопке onclick я получаю значения, но я хочу, чтобы еда была выбранной вкладкой по умолчанию при первой загрузке страницы пользователем. я хочу, чтобы еда была такой, как useState(foodid).

 const Main = () =gt; {  const [showBlock, setShowBlock] = useState();  useEffect(() =gt; {  store.dispatch(getAllCategory());  store.dispatch(getAllProduct());  }, []);   const category = useSelector((state) =gt; state.category.data.categoryList);   return (  lt;div className="app-main"gt;  lt;Header /gt;  lt;main className={"main-page"}gt;  {category.map((cat, index) =gt; (  lt;button  key={cat._id}  type="button"  onClick={() =gt; setShowBlock(`${cat._id}`)}  className={`btn btn--rounded ${  showBlock === `${cat._id}` ? "btn--active" : ""  }`}  style={{ margin: "0.5rem" }}  gt;  {cat.name}  lt;/buttongt;  ))}   lt;Products show={showBlock === `${showBlock}`} id={showBlock} /gt;  lt;/maingt;  lt;/divgt;  ); };  

Ответ №1:

вы можете просто достичь этого, сделав это:

# создайте состояние для категории по умолчанию

 ... const [defaultCategory, setDefaultCategory] = useState(null); ...  

# добавить useEffect для прослушивания изменение категории

 ... const category = useSelector((state) =gt; state.category.data.categoryList);  useEffect(() =gt; {  setDefaultCategory(category[0]) }, [category]); ...  

# передайте категорию своему реквизиту/или сравните там, где это необходимо

 ... {defaultCategory  ? // render first tab (select first tab)  : null // anything until category load } ...  

Комментарии:

1. братан, ты можешь мне помочь, как это сделать? lt;Products show={showBlock === ${showBlock} } id={showBlock} / gt; — это товары, когда пользователь нажимает на кнопку «Еда, напитки, одежда», чтобы получить товары этих категорий.