Вставка регулярного выражения внутри пользовательского состояния react не имеет эффекта

#javascript #reactjs #use-state

#javascript #reactjs #use-state

Вопрос:

Я пытаюсь установить значение состояния по умолчанию в качестве переменной регулярного выражения, но состояние не устанавливается как это значение регулярного выражения. Я присвоил регулярное выражение переменной, а затем ввел эту переменную в параметры useState по умолчанию, но состояние по умолчанию не устанавливается.

Вот мой код и то, что я пробовал:

 let allcategs = /women/i

const [catfilter, setCatfilter] = useState(allcategs) //the state of catfilter should be set to any string that is "women".

return(
<>
    {catfilter} //not showing anything
</>
)
  

Ответ №1:

вы не можете отображать объект непосредственно как дочерний элемент React используйте переменную внутри функции завершите свою операцию и отобразите результат, например:

 useEffect(() => {
            console.log(catfilter) // it will return the actual value

        }, [])
  

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

1. Это не то, что мне нужно делать. Мне нужно установить состояние по умолчанию как catfilter

2. да, вы можете установить это, но вы не можете отобразить его в dom таким образом <> {catfilter} //ничего не показывая </>

3. переместите результат операции регулярного выражения в массив, а затем сопоставьте их с dom

4. я только что нашел способ решения этой проблемы, вы можете использовать JSON.stringify(obj), после чего вы можете отображать объекты в элементах react

5. спасибо за вашу помощь, я также нашел другой способ сделать это 🙂