[英]ReactJs - TypeError: Cannot assign to read only property 'name' of object '#<Object>'
[英]TypeError: Cannot assign to read only property 'item' of object '#<Object>'
我有這個問題一天,這是我當前的 state 結構:
const [inputFields, setInputFields] = useState([
{
item: '',
quantityIssued: 0,
quantityRequested: '',
remarks: '',
unit: '',
},
])
當我單擊編輯按鈕時,我需要將日期填寫到我的 state 例如。
const editHandler = (order) => {
const custom = [
{
item: 'test',
quantityIssued: 0,
quantityRequested: 7,
remarks: '8',
unit: '1',
},
{
item: 'test2',
quantityIssued: 0,
quantityRequested: 7,
remarks: '8',
unit: '1',
},
]
setInputFields(custom)
}
當我使用該自定義數據時,我可以編輯 state 的數據,但是當我嘗試從具有相同結構的服務器中獲取該數據時,我會收到錯誤消息,例如:
const editHandler = (order) => {
setInputFields(order.orderItems)
}
雖然它們是我在上面向您展示的相同數據,但如果我編輯它,我無法編輯它說錯誤標題無法分配只讀屬性
Alhamdulillah:從這個答案幾天后終於找到了解決方案: https://stackoverflow.com/a/60960285/12463240
在 handleInputChange 我必須這樣做:
const handleInputChange = (e, index) => {
const { name, value } = e.target
const old = inputFields[index]
const updated = { ...old, [name]: value }
var list = [...inputFields]
list[index] = updated
setInputFields(list)
}
之前是這樣的:
const handleInputChange = (e, index) => {
const { name, value } = e.target
var list = [...inputFields]
list[index][name] = value
setInputFields(list)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.