Используйте эффект внутри вкладок пользовательского интерфейса, чтобы скрыть третью вкладку. - PullRequest
1 голос
/ 29 сентября 2019
  • При загрузке страницы мне нужно скрыть первые две вкладки
  • Мне нужно показать третью вкладку с содержимым в ней.
  • , но прямо сейчас после нажатия третьей вкладкитолько я вижу содержимое.
  • , поэтому я отладил и решил использовать useEffect.
  • , но там newValue не определено.
  • Можете ли вы сказать мне, как это исправить.
  • предоставив мой фрагмент кода и песочницу ниже.

https://codesandbox.io/s/material-demo-g08qt

export default function SimpleTabs() {
  const classes = useStyles();
  const [value, setValue] = React.useState(0);

  useEffect(newValue => {
    // const { user } = props;

    console.log("useEffect newValue--->", newValue);
  }, []);

  const handleChange = (event, newValue) => {
    console.log("newValue--->", newValue);
    setValue(newValue);
  };

Ответы [ 2 ]

1 голос
/ 29 сентября 2019

Просто установите ваше начальное состояние как 2, которое является значением третьей вкладки.

export default function SimpleTabs() {
  const classes = useStyles();
  const [value, setValue] = React.useState(2);
....
}
0 голосов
/ 29 сентября 2019

Функция, которую вы передаете useEffect , не принимает никаких аргументов, если вам нужен эффект для запуска при изменении значения, добавьте его в массив в качестве второго аргумента для useEffect:

useEffect(() => {
  // const { user } = props;

  console.log("useEffect newValue--->", value);
}, [value]);//run every time value changes
...