2015-05-13 21 views
6

Có khả năng truy cập và thiết lập trạng thái và đạo cụ của thành phần React hiện có thông qua trình duyệt (từ bên trong tập lệnh khác hoặc qua bàn điều khiển) không?Làm thế nào để thiết lập trạng thái thành phần React và đạo cụ từ trình duyệt

Tôi biết có một cách với Angular để truy cập phạm vi và thay đổi các biến, nhưng với React tôi đã không thể tìm được cách.

Tôi cho rằng phải có cách nào đó vì phần mở rộng Công cụ dành cho nhà phát triển React từ Facebook có thể nhận tất cả thông tin (Đạo cụ, Nhà nước, Thành phần, Trình nghe sự kiện) từ các thành phần React trên trang, với khả năng thay đổi chúng.

Nếu có khả năng thực hiện điều này thông qua JavaScript, đó sẽ là cách để làm điều đó?

+0

Vì vậy, bạn đã trả lời câu hỏi của riêng bạn rồi. – Xan

+0

Như vậy, nó quá rộng để trả lời và "Có khả năng" được trả lời bằng câu "có" trong câu hỏi đúng hay không. – Xan

+0

Điểm tốt. Đã chỉnh sửa. – Decor

Trả lời

-2

Để thiết lập nhà nước từ trình duyệt của bạn, dính vào một nơi nào đó trong thành phần của bạn, giống như trong render():

globalSetState = function(state){this.setState(state)}.bind(this); 

Lưu ý: Điều quan trọng là bạn phải rời khỏi var, vì đây là những gì làm cho các chức năng được xác định truy cập trên toàn cầu .

Bây giờ bạn có thể gọi globalSetState({x: 'y'}) trong bảng điều khiển của mình.

Cảnh báo: Điều này thật điên rồ và giống như console.log() để gỡ lỗi, nên bị xóa trong ứng dụng trực tiếp của bạn.

+1

Er, bạn không hiểu câu hỏi. Đó là câu hỏi về việc đặt trạng thái của các thành phần mà bạn không tác giả, ghi đè chúng bằng cách sử dụng Tiện ích mở rộng của Chrome. – Xan

0

Để đặt trạng thái của thành phần phản ứng từ trình duyệt, bạn có thể liên kết một hàm với đối tượng cửa sổ sẽ kích hoạt trạng thái đã đặt.

Trong hàm tạo của thành phần phản ứng, bạn có thể thực hiện việc này.

constructor (props){ 
    super(props); 
    window.changeComponentState = (stateObject) => { 
     this.setState ({stateObject}); 
    } 
} 

Trong trình duyệt giao diện điều khiển, bạn có thể làm điều này.

window.changeComponentState ({a:'a'}); 

CẢNH BÁO: Đây là kiểu chống. Điều này sẽ làm việc, nhưng bạn không bao giờ nên làm điều này.

+1

Cùng một vấn đề với câu trả lời khác. Đây không phải là về các thành phần React mà bạn có quyền kiểm soát. Đó là về việc tiêm mã trong một trang có các thành phần React đã tồn tại trước đó - nơi bạn không thể thay đổi các nhà xây dựng. – Xan

Các vấn đề liên quan