Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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_React Native_React Hooks - Fatal编程技术网

Reactjs 选择器组件没有';不显示所选的值

Reactjs 选择器组件没有';不显示所选的值,reactjs,react-native,react-hooks,Reactjs,React Native,React Hooks,我正在尝试向React本机应用程序添加选择器。但是,它不会在选择时更改为选定值。虽然当我在控制台中测试它们时,选择的值总是显示出来,但是选择器总是显示初始值。这是父组件: const LineSizingScreen = props => { const lineSizingCalculations = [ { label: "Choose the value you want", value: "" }, { label: "Value A", value: "v

我正在尝试向React本机应用程序添加选择器。但是,它不会在选择时更改为选定值。虽然当我在控制台中测试它们时,选择的值总是显示出来,但是选择器总是显示初始值。这是父组件:

  const LineSizingScreen = props => {
  const lineSizingCalculations = [
    { label: "Choose the value you want", value: "" },
    { label: "Value A", value: "value-a" },
    { label: "Value B", value: "value-b" }
  ];
  return (
    <View>
      <CalcPicker
        initialValue={lineSizingCalculations[0]}
        availableCalcs={lineSizingCalculations}
      ></CalcPicker>
    </View>
  );
const CalcPicker = props => {
    const [pickerValue, setPickerValue] = useState(props.initialValue)
    const {availableCalcs} = props;

    return (
        <Picker
        selectedValue={pickerValue.label}
        style={{ height: 50, width: 350 }}
        onValueChange={(itemValue, itemIndex) => {
            const chosenCalc = availableCalcs.filter( calc => calc.value === itemValue );
            setPickerValue(chosenCalc[0])
        }}
      >
          {availableCalcs.map((item, index) => {
              return(
                <Picker.Item key={index} label={item.label} value={item.value} />
              )
          })}

      </Picker>
    )
}
const LineSizingScreen=props=>{
常数lineSizingCalculations=[
{标签:“选择所需的值”,值:},
{标签:“值A”,值:“值-A”},
{标签:“值B”,值:“值B”}
];
返回(
);
这是选择器组件:

  const LineSizingScreen = props => {
  const lineSizingCalculations = [
    { label: "Choose the value you want", value: "" },
    { label: "Value A", value: "value-a" },
    { label: "Value B", value: "value-b" }
  ];
  return (
    <View>
      <CalcPicker
        initialValue={lineSizingCalculations[0]}
        availableCalcs={lineSizingCalculations}
      ></CalcPicker>
    </View>
  );
const CalcPicker = props => {
    const [pickerValue, setPickerValue] = useState(props.initialValue)
    const {availableCalcs} = props;

    return (
        <Picker
        selectedValue={pickerValue.label}
        style={{ height: 50, width: 350 }}
        onValueChange={(itemValue, itemIndex) => {
            const chosenCalc = availableCalcs.filter( calc => calc.value === itemValue );
            setPickerValue(chosenCalc[0])
        }}
      >
          {availableCalcs.map((item, index) => {
              return(
                <Picker.Item key={index} label={item.label} value={item.value} />
              )
          })}

      </Picker>
    )
}
const CalcPicker=props=>{
常量[pickerValue,setPickerValue]=useState(props.initialValue)
const{availableCalcs}=props;
返回(
{
const chosenCalc=availableCalcs.filter(calc=>calc.value===itemValue);
setPickerValue(chosenCalc[0])
}}
>
{availableCalcs.map((项目,索引)=>{
返回(
)
})}
)
}
例如,当我选择值A时,所选的值在应用程序上不会改变,但是当我控制台记录pickerValue.label时,我得到了预期的值A


提前感谢

应用程序上的
值未更改意味着什么?您希望新值在哪里更新?在
LineSizingScreen
?我的意思是,当我选择一个选择器项目(例如值a)时,它应该在屏幕上显示为所选值。例如,当屏幕重新加载时,选择器的默认值为“选择一个值”,它有两个选项“值a”和“值B”。因此,当我选择“值A”时,选择器值应更改为“值A”。这种情况并没有发生,它仍然是“选择一个值”,尽管当我控制台将pickerValue.label记录为selectedValue时,它会按预期输出“值a”。可能是因为您传递的是
selectedValue={pickerValue.label}
而不是
selectedValue={pickerValue.value}
?对我来说,您的项目在被选中后运行良好条目显示在我的下拉列表中。但是你说,这对你不起作用。我们在看同一个地方吗?你在上面提供了3条评论的链接?