คำถามติดแท็ก setstate

25
วิธีอัปเดตคุณสมบัติสถานะซ้อนใน React
ฉันกำลังพยายามจัดระเบียบสถานะของฉันโดยใช้คุณสมบัติที่ซ้อนกันเช่นนี้: this.state = { someProperty: { flag:true } } แต่การอัพเดทสถานะเช่นนี้ this.setState({ someProperty.flag: false }); ไม่ทำงาน สิ่งนี้สามารถทำได้อย่างถูกต้อง?

4
เมื่อใดจึงจะใช้ React setState callback
เมื่อสถานะองค์ประกอบของการตอบสนองเปลี่ยนแปลงวิธีการแสดงผลจะถูกเรียก ดังนั้นสำหรับการเปลี่ยนแปลงสถานะใด ๆ การดำเนินการสามารถทำได้ในร่างกายวิธีการแสดงผล มีกรณีการใช้งานเฉพาะสำหรับการโทรกลับ setState หรือไม่?

4
ฉันสามารถใช้งานฟังก์ชั่นหลังจากที่ setState อัปเดตเสร็จแล้วได้หรือไม่
ฉันใหม่สำหรับ React JS (เหมือนเพิ่งเริ่มวันนี้) ฉันไม่ค่อยเข้าใจว่า setState ทำงานอย่างไร ฉันกำลังรวม React และ Easel JS เพื่อวาดกริดตามอินพุตของผู้ใช้ นี่คือถัง JS ของฉัน: http://jsbin.com/zatula/edit?js,output นี่คือรหัส: var stage; var Grid = React.createClass({ getInitialState: function() { return { rows: 10, cols: 10 } }, componentDidMount: function () { this.drawGrid(); }, drawGrid: function() { stage = new createjs.Stage("canvas"); var rectangles …

4
React รักษาลำดับการอัปเดตสถานะหรือไม่
ฉันรู้ว่า React อาจทำการอัปเดตสถานะแบบอะซิงโครนัสและเป็นกลุ่มเพื่อเพิ่มประสิทธิภาพการทำงาน ดังนั้นคุณจึงไม่สามารถไว้วางใจสถานะที่จะอัปเดตได้หลังจากที่โทรsetStateไปแล้ว แต่คุณสามารถเชื่อถือได้ตอบสนองกับการอัปเดตของรัฐในการสั่งซื้อเช่นเดียวกับsetStateที่เรียกว่าสำหรับ ส่วนประกอบเดียวกัน? ส่วนประกอบต่าง ๆ ? พิจารณาคลิกปุ่มในตัวอย่างต่อไปนี้: 1.มีความเป็นไปได้หรือไม่ที่a เป็นเท็จและ b เป็นจริงสำหรับ: class Container extends React.Component { constructor(props) { super(props); this.state = { a: false, b: false }; } render() { return <Button onClick={this.handleClick}/> } handleClick = () => { this.setState({ a: true }); this.setState({ b: true }); …

14
ไม่สามารถทำการอัพเดตสถานะการตอบสนองบนส่วนประกอบที่ไม่ได้ต่อเชื่อม
ปัญหา ผมเขียนประยุกต์ใช้ในการตอบสนองและไม่สามารถที่จะหลีกเลี่ยงอันตรายที่พบบ่อยสุดซึ่งจะเรียกหลังจากsetState(...)componentWillUnmount(...) ฉันดูรหัสของตัวเองอย่างถี่ถ้วนและพยายามใส่มาตราการป้องกันไว้ แต่ปัญหายังคงอยู่และฉันยังคงสังเกตคำเตือนอยู่ ดังนั้นฉันมีคำถามสองข้อ: ฉันจะทราบได้อย่างไรจากการติดตามสแต็กคอมโพเนนต์เฉพาะและตัวจัดการเหตุการณ์หรือจุดเชื่อมต่อวงจรชีวิตที่รับผิดชอบต่อการละเมิดกฎ วิธีแก้ไขปัญหาด้วยตัวเองเนื่องจากรหัสของฉันเขียนขึ้นโดยคำนึงถึงข้อผิดพลาดนี้และกำลังพยายามป้องกันอยู่แล้ว แต่ส่วนประกอบพื้นฐานบางส่วนยังคงสร้างคำเตือน คอนโซลเบราว์เซอร์ Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method. in TextLayerInternal (created by Context.Consumer) …

9
ตอบสนอง setState ไม่ได้อัปเดตสถานะ
ฉันมีสิ่งนี้: let total = newDealersDeckTotal.reduce(function(a, b) { return a + b; }, 0); console.log(total, 'tittal'); //outputs correct total setTimeout(() => { this.setState({dealersOverallTotal: total}); }, 10); console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1'); //outputs incorrect total newDealersDeckTotal เป็นเพียงอาร์เรย์ของตัวเลข[1, 5, 9]เช่น แต่this.state.dealersOverallTotalไม่ได้ให้ผลรวมที่ถูกต้อง แต่total? ฉันยังใช้เวลาหน่วงเวลาเพื่อดูว่าวิธีนี้ช่วยแก้ปัญหาได้หรือไม่ ชัดเจนหรือควรโพสต์โค้ดเพิ่มเติม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.