Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用效果操纵次值_Reactjs - Fatal编程技术网

Reactjs 使用效果操纵次值

Reactjs 使用效果操纵次值,reactjs,Reactjs,嗨,我正在为销售网站制作一个交互式价格计算器,允许用户点击增加数值的功能。我已经决定在将上下文引入网站之前,在useState Useffect中完成整个事情 你现在看到的是Useffect部分,我还不想把它放在上下文中,但我准备稍后再做 const ToolSelect = () => { useEffect(() => { setInitialState(initialState); }, []); const [initialState

嗨,我正在为销售网站制作一个交互式价格计算器,允许用户点击增加数值的功能。我已经决定在将上下文引入网站之前,在useState Useffect中完成整个事情

你现在看到的是Useffect部分,我还不想把它放在上下文中,但我准备稍后再做

const ToolSelect = () => {
    useEffect(() => {
        setInitialState(initialState);
    }, []);

    const [initialState, setInitialState] = useState({
        service: "",
        services: [],
        plan: "",
        type: "",
        clicked: false,
        price: 0
    });

    const { number, service } = initialState;

    useEffect(() => {
        if (type === "cash") {
            setPrice(number * 1.1);
        } else if (type === "accrual") {
            setPrice(number * 1.2);
        }
    });

    useEffect(() => {
        setClicked(true);
        if (plan === "starter") {
            setPrice(1000);
        } else if (plan === "essential") {
            setPrice(2000);
        }
    });

    useEffect(() => {
        if (service === "tp") {
            services.push(service);
            setPrice(number + 800);
        } else if (service === "pr") {
            services.push(service);
            setPrice(number + 1000);
        } else if (service === "entity") {
            services.push(service);
            setPrice(number + 300);
        } else if (service === "compliance") {
            services.push(service);
            setPrice(number + 2000);
        }
    });

    const [price, setPrice] = useState(0);
    const [type, setType] = useState("");
    const [plan, setPlan] = useState("");
    const [services, setServices] = useState([]);
    const [clicked, setClicked] = useState(true);

    const onChange = e => {
        setPrice({ ...price, [e.target.name]: e.target.value });
        setType({ ...type, [e.target.name]: e.target.value });
        setPlan({ ...plan, [e.target.name]: e.target.value });
        setServices({ ...service, [e.target.name]: e.target.value });
    };

    const onSubmit = e => {
        e.preventDefault();
    };

您尚未向
useffect
添加任何依赖项,因此这将继续对每个
set
状态执行
useffect
fn。将setValue或value添加到useEffects会使我得到一个初始化错误代码更新请帮助我你想用单个的
useEffects
替换
3useEffects
?我想在与表单上的选择值交互时汇总价格