Reactjs 选择器组件没有';不显示所选的值
我正在尝试向React本机应用程序添加选择器。但是,它不会在选择时更改为选定值。虽然当我在控制台中测试它们时,选择的值总是显示出来,但是选择器总是显示初始值。这是父组件: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
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条评论的链接?