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

如何从子组件获取值?

卞琨
2023-03-14

我有一个要导入页面的组件:

function CodeVerify(props) {
  const [value, setValue] = useState('');
  const ref = useBlurOnFulfill({value, cellCount: CELL_COUNT});
  const [propsCV, getCellOnLayoutHandler] = useClearByFocusCell({
    value,
    setValue,
  });

  return (
    <SafeAreaView style={styles.root}>
      <Text style={styles.title}>
        Enter the code sent to your number 
      </Text>
      <CodeField
        ref={ref}
        {...propsCV}
        value={value}
        onChangeText={setValue}
        cellCount={CELL_COUNT}
        rootStyle={styles.codeFiledRoot}
        keyboardType="number-pad"
        textContentType="oneTimeCode"
        renderCell={({index, symbol, isFocused}) => (
          <View
            // Make sure that you pass onLayout={getCellOnLayoutHandler(index)} prop to root component of "Cell"
            onLayout={getCellOnLayoutHandler(index)}
            key={index}
            style={[styles.cellRoot, isFocused && styles.focusCell]}>
            <Text style={styles.cellText}>
              {symbol || (isFocused ? <Cursor /> : null)}
            </Text>
          </View>
        )}
      />
    </SafeAreaView>
  );

在页面上,我呈现组件

如何从CodeVerify组件获取组件的值?


共有1个答案

甄德寿
2023-03-14
匿名用户

您可以将您的状态从提升到,然后传递该数据以下是示例:

父组件

import React, {useEffect, useState} from 'react';
import Child from "./Child";

function CParent(props) {

    const [value, setValue] = useState(false);

    function setOpeningValue(value) {
        console.log('From Child to Parent:' + value);
        setValue(value);
    }
    return (
        <div>
            <Child setOpeningValue={setOpeningValue}/>
        </div>
    );
}
export default CParent;

在这里,我们使用像setOpenValue={setOpeningValue}这样的道具传递setOpeningValue。从子组件中,我们调用setOpeningValue,其中参数中有一个值,这样我们就可以将该参数接收到父组件中。

子组件

import React, {useEffect, useState} from 'react';

// Child to Parent communication
function Child(props) {
    const {setOpeningValue} = props;
    const [value, setValue] = useState('');

    function clickHandler() {
        setOpeningValue(`changes is ${value}`);
    }

    function changeHandler(event) {
        setValue(event.target.value);
    }

    return (
        <div>
            <input onChange={changeHandler} />
            <button onClick={clickHandler}>pass data to parent</button>
        </div>
    );
}
export default Child;

 类似资料:
  • 问题内容: 我有并想要一些函数,调用的结果是新数组。 问题答案: 看一眼

  • 如何在Children内部拿到父级的ref? 父级是不同的组件

  • 问题内容: 我希望能够弄清楚哪些React组件与某个DOM元素相关联。 例如,假设我有一个div,并且正在使用React渲染整个应用程序。div必须由React组件呈现-但是哪一个呢? 我知道React提供了方法“ getDOMNode ”来获取与React组件相关联的DOM节点,但是我想做相反的事情。 这可能吗? 问题答案: 没有。 React中的中心概念是您实际上在DOM中没有控件。相反,您的

  • 我有一个父组件从API获取一些数据,并将数据存储在状态中,然后将其传递给子组件,如下所示: 在我的子组件中,我有两个问题,一个是:我想在componentDidMount中接收一个道具(ratingsAverage),但在render()函数中接收ratingsAverage时未定义。另一个是:在我的render()函数中,我只能接收非对象或数组的数据,当我接收到一个对象并希望访问该对象的属性时,

  • 我试图在父组件中显示子组件的状态,但不知何故,文本“abcde”仍然没有显示,这是示例代码 但不知怎么的,屏幕仍然是空的,“abcde”直到我点击两次,来自功能组件,所以我不知道发生了什么,请帮助,非常感谢

  • 问题内容: 我正在为一个朋友的婚礼编写一个照相馆网络应用程序,他们希望照相馆供客人提交当天拍摄的数码照片。 在评估了所有选项之后,我认为对于用户来说,最简单的事情是让他们使用熟悉的界面(他们的电子邮件),并让他们将图片作为附件发送。 我已经创建了一个邮箱,但是现在我需要连接并检索这些附件以进行自动处理,以添加到图库系统中。但是如何?您是否看到过这样做的任何教程或预制类? 问题答案: 您正在使用什么