当前位置: 首页 > 知识库问答 >
问题:

使用效果问题在获取数据时不起作用

黄鸣
2023-03-14

我使用useEffects在反应功能组件中获取数据,它必须在data(useState)中获取数据,所以问题是页面加载正确,在api res中没有问题。

function AdminDashBoard() {

    const [data, setData] = useState([]);
    const [selectedOption, setselectedOption] = useState("");
    const [c_options, setc_options] = useState([]);
    useEffect(() => {
        axios.get("http://localhost:8000/products")
            .then(response => { setData(response.data.result); })
            .then(
                () => {
                    data.forEach(element => {
                        let options = [];
                        if (options.indexOf(element.category) < 0) options += { value: element.category, label: element.category };
                        setc_options(options);
                    })
                }
            )
            .catch(err => { console.log(err) })
    }, [])

    function handleSelectChange(event) {
        setselectedOption(event.target.value);
        console.log("selected category : ")
        console.log(selectedOption)
    }
    return (
        <div class="row-fluid main">
            <div className="form-group">
                <label for="formControlSelect2">select category :</label>
                <Select class="form-control" id="formControlSelect2" onChange={() => handleSelectChange} options={c_options} />
            </div>
            <span id="products"></span>
        </div>
    );
}
export default AdminDashBoard;

共有1个答案

崔宇
2023-03-14
 write another useEffect and put data dependency in an array and clean up second then in your useEffect becaucse that is unnesseary


  useEffect(() => {
     const oldDtate=[...data]
     oldDtate.forEach(element => {
      let options = [];
      if (options.indexOf(element.category) < 0) options += { value: 
         element.category, label: element.category };
       setc_options(options) 
       }, [data])
 类似资料:
  • 我正试图从表中获取数据,但我没有得到任何东西,只是日志文件中的一些错误...请有人帮助我 Catalina.2013-11-15.log 2013年11月15日11:13:32.568信息[http-apr-8080-exec-2]null.null hhh000206:hibernate.properties找不到 2013年11月15日11:13:32.577信息[http-apr-8080-

  • 问题内容: 有谁知道为什么这不起作用? 这确实有效: 问题答案: 调用中的第二个参数是一个配置对象。您想要这样的东西: 有关更多详细信息,请参见http://docs.angularjs.org/api/ng.$http的“ 参数” 部分。

  • 本文向大家介绍zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题,包括了zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题的使用技巧和注意事项,需要的朋友参考一下 在移动web开发中,由于手机界面较小,为了能展示更多的图片经常使用轮播图并且还需要考虑到手机流量的问题,通过请教他人以及百度,个人感觉swipe.js比较好

  • 我有一个spring boot应用程序(基于spring-boot-starter-data-jpa。 我使用了CrudRepository 和几个findBy方法,这些方法都可以工作。而且我有一个派生的deleteBy方法--这不起作用。签名很简单: 实体也很简单: deleteBy方法不起作用的原因是它似乎只向数据库发出一个“select”语句,该语句选择所有的MyEntity行,这些行具有一

  • 最小SDK为21。当我点击回收器适配器中的cardview时,不会产生连锁反应,只会进入下一个屏幕。recyclerview位于片段内部。 适配器代码,其中我对每个项目进行了onClick。

  • 问题内容: 以下是我的ajax电话 我在控制台中收到“ TypeError:无效的’in’操作数obj’”错误 预先谢谢你 问题答案: 在您的Ajax调用中提及dataType属性,默认情况下会考虑文本,这就是为什么无法对 结果 进行迭代的 原因 因为您的 结果 应该是数组或json