Javascript 我无法在提交时显示状态

Javascript 我无法在提交时显示状态,javascript,reactjs,Javascript,Reactjs,我有一个组件,它在父组件中渲染了4次。我想更改父组件中的状态,并显示包含四个输入的所有值的数组。无论如何,在父组件中,当我进行onSubmit时,状态似乎没有更新,并且没有显示值。我想我传递道具的方式不对。谁能给我解释一下我做错了什么?非常感谢 import React, { useState } from 'react'; import CurrencyInput from 'react-currency-input-field'; function Stake(props) { c

我有一个组件,它在父组件中渲染了4次。我想更改父组件中的状态,并显示包含四个输入的所有值的数组。无论如何,在父组件中,当我进行onSubmit时,状态似乎没有更新,并且没有显示值。我想我传递道具的方式不对。谁能给我解释一下我做错了什么?非常感谢

import React, { useState } from 'react';
import CurrencyInput from 'react-currency-input-field';

function Stake(props) {
    const [newStake, setStake] = useState(['']);

    const changeStake = (e) => {
        setStake(e.target.value)
    }
    return (
        <>
            <CurrencyInput
                onChange={changeStake}
                newStakeProp={newStake}
                style={{
                    marginLeft: "40px",
                    width: "50px"
                }}
                placeholder="Stake"
                decimalScale={2}
                prefix="£"
            />
            <button onSubmitProp={props.onSubmit}>yes</button>
            <button>no</button>
            {newStake}
        </>
    );
}

export default Stake;
import React,{useState}来自“React”;
从“反应货币输入字段”导入货币输入;
功能桩(道具){
const[newStake,setStake]=useState(['');
const changestage=(e)=>{
设定值(如目标值)
}
返回(
对
不
{newStake}
);
}
出口违约股权;
import React,{Component}来自'React';
从“./桩”导入桩;
类FetchRandomBet扩展组件{
建造师(道具){
超级(道具);
此.state={
加载:对,
打赌:空,
value:this.props.value,
所有股份:['']
};
}
异步组件didmount(){
常量url=”http://localhost:4000/";
const response=等待获取(url);
const data=wait response.json();
这是我的国家({
加载:false,
打赌:data.bets,
});
}
render(){
const{valueProp:value}=this.props;
const{newStakeProp:newStake}=this.props;
const{bet,load}=this.state;
如果(装载){
返回装载。。;
}
如果(!打赌){
返回未获取数据;
}
返回(
{ 正在加载| |!打赌( 加载。。 ):值===0( 名字

{ bet.map(post=>(
  • {post.name}
  • )) }
      赔率

      { bet.map(post=>(
    • {post.赔率[4].oddsDecimal} {this.setState({allstacks:[…newStake]}} > {this.state.allstacks}
    • )) }

    newStake
    是您的赌注组件的状态。但是如果您不从子组件传递它,则父组件无法知道它

    因此,stack子组件应该有自己的submit函数,然后调用父组件的
    onSubmit
    ,并使用一个参数holding
    newStake

    当然,父对象中的内联onSubmit应该接受包含newStake的参数

    import React, { useState } from 'react';
    import CurrencyInput from 'react-currency-input-field';
    
    function Stake(props) {
        const [newStake, setStake] = useState(['']);
    
        const changeStake = (e) => {
            setStake(e.target.value)
        }
    
        const mySubmit = () => {
            props.onSubmit(newStake);
        }
        return (
            <>
                <CurrencyInput
                    onChange={changeStake}
                    style={{
                        marginLeft: "40px",
                        width: "50px"
                    }}
                    placeholder="Stake"
                    decimalScale={2}
                    prefix="£"
                />
                <button onSubmitProp={mySubmit}>yes</button>
                <button>no</button>
                {newStake}
            </>
        );
    }
    
    export default Stake;
    
    import React,{useState}来自“React”;
    从“反应货币输入字段”导入货币输入;
    功能桩(道具){
    const[newStake,setStake]=useState(['');
    const changestage=(e)=>{
    设定值(如目标值)
    }
    const mySubmit=()=>{
    道具。提交(新闻短片);
    }
    返回(
    对
    不
    {newStake}
    );
    }
    出口违约股权;
    
    newStake
    是您的赌注组件的状态。但是如果您不从子组件传递它,则父组件无法知道它

    因此,stack子组件应该有自己的submit函数,然后调用父组件的
    onSubmit
    ,并使用一个参数holding
    newStake

    当然,父对象中的内联onSubmit应该接受包含newStake的参数

    import React, { useState } from 'react';
    import CurrencyInput from 'react-currency-input-field';
    
    function Stake(props) {
        const [newStake, setStake] = useState(['']);
    
        const changeStake = (e) => {
            setStake(e.target.value)
        }
    
        const mySubmit = () => {
            props.onSubmit(newStake);
        }
        return (
            <>
                <CurrencyInput
                    onChange={changeStake}
                    style={{
                        marginLeft: "40px",
                        width: "50px"
                    }}
                    placeholder="Stake"
                    decimalScale={2}
                    prefix="£"
                />
                <button onSubmitProp={mySubmit}>yes</button>
                <button>no</button>
                {newStake}
            </>
        );
    }
    
    export default Stake;
    
    import React,{useState}来自“React”;
    从“反应货币输入字段”导入货币输入;
    功能桩(道具){
    const[newStake,setStake]=useState(['');
    const changestage=(e)=>{
    设定值(如目标值)
    }
    const mySubmit=()=>{
    道具。提交(新闻短片);
    }
    返回(
    对
    不
    {newStake}
    );
    }
    出口违约股权;
    
    我试图用onClick更改onSubmit,但它突然正常工作。谢谢大家的帮助

    <Stake
    onClick={(newStake) => { this.setState({ allStakes: [...newStake, newStake] }) }}
     />
    
    {this.setState({allstacks:[…newStake,newStake]}}
    />
    

    我试图用onClick更改onSubmit,但它突然正常工作。谢谢大家的帮助

    <Stake
    onClick={(newStake) => { this.setState({ allStakes: [...newStake, newStake] }) }}
     />
    
    {this.setState({allstacks:[…newStake,newStake]}}
    />
    

    change
    const[newStake,setStake]=useState(['');
    to this
    const[newStake,setStake]=useState([]);
    change
    const[newStake,setStake]=useState(['');
    to this
    const[newStake,setStake]=useState([])
    我实现了这个,但它不起作用:是否{newStake}我如何传递参数newStake?再次感谢您放置的最新编辑
    {this.state.allstacks}
    在桩组件内部。您应该将其移动到桩组件外部的某个位置。一些问题:货币的值是否输入数组?为什么要启动ALL