我在compose中有3个textField用于name,age和gender,并使用uiState数据类来保存输入的状态:
data class UiState(
val nameInput: String = "",
val ageInput: String = "",
val genderInput: String = "",
)
为了更新状态,我使用以下函数作为onValueChanged函数(每个属性一个函数:姓名、年龄和性别):
fun updateNameInput(input: String) {
_uiState.update { it.copy(nameInput = input) }
}
fun updateAgeInput(input: String) {
_uiState.update { it.copy(ageInput = input) }
}
fun updateGenderInput(input: String) {
_uiState.update { it.copy(genderInput = input) }
}
现在我的问题是,我如何将这三个函数归结为一个,并在函数定义中传递参数(eighter nameInput,ageInput或genderInput)并仅更新该参数。
我希望能够只使用一个功能来更新这3个文本字段eighter。
先谢谢你了。
1条答案
按热度按时间6tr1vspr1#
为了把它放在一个函数中,我想你可以把函数参数设置为可选的,并为非null的参数创建新的副本,然后你可以把null作为默认参数,让它们成为可选的。