【发布时间】:2019-07-23 16:16:53
【问题描述】:
我收到来自服务器的响应,其结构如下:
{
is_separate_page: true,
is_blank_page: true,
is_instructions_page: false,
is_letter_paper: true,
is_pressure_seal_paper: false,
is_mask_ssn_on_letter_paper: true,
is_mask_ssn_on_pressure_seal_paper: true,
is_pdf_encrypted_on_letter_paper: false,
is_pdf_encrypted_on_pressure_seal_paper: true
}
然后我使用以下辅助函数将值转换为驼峰式语法以存储在我的 React 组件状态中:
// Destructuring approach
transformInitialCheckboxesState = data => {
const {
is_show_mask_ssn_field: isShowMaskSSNField,
is_separate_page: isSeparatePage,
is_blank_page: isBlankPage,
is_instructions_page: isInstructionsPage,
is_letter_paper: isLetterPaper,
is_pressure_seal_paper: isPressureSealPaper,
is_mask_ssn_on_letter_paper: isMaskSSNonLetterPaper,
is_mask_ssn_on_pressure_seal_paper: isMaskSSNonPressureSealPaper,
is_pdf_encrypted_on_letter_paper: isPDFEncryptedOnLetterPaper,
is_pdf_encrypted_on_pressure_seal_paper: isPDFEncryptedOnPressureSealPaper,
} = data
return {
isShowMaskSSNField,
isSeparatePage,
isBlankPage,
isInstructionsPage,
isLetterPaper,
isPressureSealPaper,
isMaskSSNonLetterPaper,
isMaskSSNonPressureSealPaper,
isPDFEncryptedOnLetterPaper,
isPDFEncryptedOnPressureSealPaper,
}
}
对于提交值,我应该根据后端需求执行相反的操作来准备密钥:
preparePayloadCheckboxesState = data => {
const {
isShowMaskSSNField: is_show_mask_ssn_field,
isSeparatePage: is_separate_page,
isBlankPage: is_blank_page,
isInstructionsPage: is_instructions_page,
isLetterPaper: is_letter_paper,
isPressureSealPaper: is_pressure_seal_paper,
isMaskSSNonLetterPaper: is_mask_ssn_on_letter_paper,
isMaskSSNonPressureSealPaper: is_mask_ssn_on_pressure_seal_paper,
isPDFEncryptedOnLetterPaper: is_pdf_encrypted_on_letter_paper,
isPDFEncryptedOnPressureSealPaper: is_pdf_encrypted_on_pressure_seal_paper,
} = data
return {
is_show_mask_ssn_field,
is_separate_page,
is_blank_page,
is_instructions_page,
is_letter_paper,
is_pressure_seal_paper,
is_mask_ssn_on_letter_paper,
is_mask_ssn_on_pressure_seal_paper,
is_pdf_encrypted_on_letter_paper,
is_pdf_encrypted_on_pressure_seal_paper,
}
}
问题是:就我的观点而言,它看起来非常相似且可重复,根据您的观点,减少此代码的最佳和最优雅的方法是什么?
【问题讨论】:
-
请注意,“优雅”和“性能”通常是不相容的。
标签: javascript reactjs performance object