Tôi đã có một thành phần phản ứng với một đầu vào, và một tùy chọn "đầu vào tiên tiến":ReactJs: thay đổi trạng thái để đáp ứng với sự thay đổi trạng thái
[ basic ]
Hide Advanced...
[ advanced ]
Các tiên tiến ở phía dưới sẽ biến mất nếu bạn nhấp vào "Hide Nâng cao ", thay đổi thành" Hiển thị Nâng cao ". Điều đó đơn giản và hoạt động tốt, có một khóa showAdvanced
trong trạng thái kiểm soát văn bản và liệu đầu vào nâng cao có được hiển thị hay không. Tuy nhiên,
Mã JS bên ngoài có thể thay đổi giá trị nâng cao, trong trường hợp này tôi muốn hiển thị đầu vào [nâng cao] nếu nó hiện đang bị ẩn và giá trị khác với giá trị mặc định. Tuy nhiên, người dùng có thể nhấp vào "Ẩn nâng cao" để đóng lại.
Vì vậy, ai đó gọi bên ngoài cmp.setState({advanced: "20"})
và sau đó tôi muốn hiển thị nâng cao; Điều đơn giản nhất cần làm là cập nhật showAdvanced
ở trạng thái của tôi. Tuy nhiên, dường như không có cách nào để cập nhật một số trạng thái để phản ứng với các thay đổi trạng thái khác trong React. Tôi có thể nghĩ về một số cách giải quyết với hành vi hơi khác nhau, nhưng tôi thực sự muốn có hành vi cụ thể này.
Tôi có nên chuyển showAdvanced sang đạo cụ, điều đó có hợp lý không? Bạn có thể thay đổi đạo cụ để đáp ứng với những thay đổi của tiểu bang không? Cảm ơn.
Đặt một trạng thái tùy thuộc vào trạng thái khác có âm thanh như kiểu chống. Tại sao bạn không chỉ kiểm tra trạng thái 'nâng cao' trong phương thức hiển thị? – David
Bạn có jsfiddle không? Nếu tôi hiểu chính xác, bạn muốn kiểm soát khả năng hiển thị của một phần tử từ bên trong thành phần của bạn, nhưng cũng từ bên ngoài phải không? Vì vậy, tôi sẽ chỉ sử dụng một prop, và có một điều kiện nếu để kiểm tra xem bạn có nên hiển thị nó hay không. –