m0_62452255 2022-04-26 16:39 采纳率: 85.7%
浏览 155
已结题

react中行内样式的背景颜色怎么改变(每次页面刷新都会更改背景颜色)

import React, { useState, useEffect } from 'react'
// import './04demo.css';
import axios from 'axios'
function Father() {
    //定义State为数组,setState是获得的数据
    const [Statearr, setStatearr] = useState([])//name
    const [countarr, setCountarr] = useState([])//username
    const [Emailarr, setEmailarr] = useState([])//email
    const [Addressarr, setAddressarr] = useState([])//address
    const [isName, setIsName] = useState(true)
    useEffect(() => {
        //fetch请求数据
        axios("https://jsonplaceholder.typicode.com/users")

            //fetch()返回一个promise,在.then方法里面处理,此时,我们还没有获得所需要的json格式的数据,
            //所以在response对象上调用.json()方法,这将返回另一个以json格式数据resolve的promise,所以fetch请求包含两个promise。
            // .then((res) => res.json())
            // .then(data => {
            //     console.log(data);


            //对于Axios,响应数据默认为JSON。响应数据在response对象的data属性上。
            .then(response => {
                console.log(response.data)

                let list1arr = response.data.map((post) => {
                    return post.name
                });
                let list2arr = response.data.map((post) => {
                    return post.username
                });
                let list3arr = response.data.map((post) => {
                    return post.email
                });
                let list4arr = response.data.map((post) => {
                    return post.address
                });
                //打印list
                console.log(list2arr)
                console.log(list4arr)
                //将list赋值给setState
                setStatearr(list1arr)
                setCountarr(list2arr)
                setEmailarr(list3arr)
                setAddressarr(list4arr)
            })
            //使用 catch() 去捕获错误
            .catch(err => console.log(err));
    }, [])
    let xxx = isName ? Statearr : countarr
    console.log(xxx)
    console.log(Addressarr)

    //sortName函数,以及字符串的排序方法localeCompare
    const sortName = () => {
        const data = [...Statearr.sort((a, b) => a.localeCompare(b))];
        setStatearr(data);
    }
//更改颜色
const [isClicked, setIsClicked] = useState(true);
  const changeToArbitraryColor = () => {
    document.body.style.backgroundColor =
      "#" + Math.floor(Math.random() * 16777215).toString(16);
    setIsClicked(!isClicked);
  };



    return (
        <div>
            {xxx.map(namearr => { return <Son value={namearr} key={namearr} /> })}

            <div 
            className={document.body.style.backgroundColor}
            style={{
                
                display: "flex",
                flexDirection: "column",
                backgroundColor: 'green'
            }}>
                {Addressarr.map(address => { return <div key={address.city}>{address.city} </div> })}
            </div>


            {Emailarr.map(Emailarr => { return <Son value1={Emailarr} key={Emailarr} /> })}


            <button onClick={() => { setIsName(!isName) }}>name更换username</button><hr />

            <button onClick={() => sortName()} >对name排序</button >

            <button onClick={changeToArbitraryColor}>
                更换背景颜色
            </button>
        </div>
    )
}
function Son(props) {

    return (
        <div >
            <div 
                style={{
                    display: "flex",
                    flexDirection: "column",
                    backgroundColor: 'skyblue'
                }}
            >
                {props.value}
            </div>
            <div style={{
                display: "flex",
                flexDirection: "column",
                backgroundColor: 'red'
            }}>
                {props.value1}
            </div>

        </div>
    )
}
export { Father, Son }

img

  • 写回答

1条回答 默认 最新

  • 崽崽的谷雨 2022-04-26 18:36
    关注

    可以把颜色 改成变量

     <div style={{
                        display: "flex",
                        flexDirection: "column",
                        backgroundColor:color
                    }}>
                       00
                    </div>
    
    
    

    动态改变color值即可

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月27日
  • 已采纳回答 4月26日
  • 创建了问题 4月26日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?